存放文件和NuGet包的文件夹的根文件夹
问题描述:
我想我的打包项目文件,并使用像这样创建的NuGet包: 的NuGet包file.csproj -p配置= $(ConfigurationName); -NoPackageAnalysis。存放文件和NuGet包的文件夹的根文件夹
但问题是它的将文件/文件夹相关的“内容”文件夹和组件项目在“LIB”文件夹,但我想要的文件/文件夹的根目录,图书馆,斌文件夹类似这个 。 但现在我的文件夹结构是这样的:
我nuspec文件的结构是
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>abc</authors>
<owners>abc</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>abc</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 9999</copyright>
<tags></tags>
</metadata>
<files>
<file src="bin\**" target="bin" />
<file src="$target$\**\*.*" target=""/>
</files>
</package>
即使不包括在第二图像显示相同的输出结构我nuspec文件结果。我正在使用nuget版本4.1.0,我也尝试使用早期版本的nuget,如2.8.6。
答
你应该创建一个自定义.nuspec文件
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>title</id>
<version>1.0.0</version>
<authors>abc</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>desc</description>
</metadata>
<files>
<file src="bin\Debug\bin\*.*" target="bin" />
<file src="bin\Debug\fonts\*.*" target="fonts" />
............
</files>
</package>
答
我这个努力为好,但要了解<files />
收集/package
和<contentFiles />
收集/package/metadata
之间的区别是很重要的。
的<files />
集合告诉的打包哪些文件就摆在你的包,在包的lib
,content
或tools
目录。
注意:你不需要使用这个集合,你也可以使用a convention-based working directory。
<contentFiles />
集合告诉包的消费者如何使用包中包含的文件。
在你的情况.nuspec文件应该是这个样子(真的不知道有关$target$
部分,但:
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>abc</authors>
<owners>abc</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>abc</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 9999</copyright>
<tags></tags>
<contentFiles>
<files include="bin/**" buildAction="None" copyToOutput="true" />
</contentFiles>
</metadata>
<files>
<file src="bin\**" target="content\bin" />
<file src="$target$\**\*.*" target="content"/>
</files>
</package>
这个回答似乎很有希望,但似乎'contentFiles'实际上是不同的概念:它只适用于不可变(不可编辑)的内容文件。请参阅这里的emgarten的评论: https://github.com/NuGet/Home/issues/2060 因此,我试过你的答案,但可惜它没有工作 –