我已将CI-build中的以下行合并到在每个构建上创建一个私有NuGet包:
nuget pack C:\Projects\Test\Test.vbproj -OutputDirectory \\nas1\NuGet
读取AssemblyInfo (包括版本号)并创建NuGet包。
我希望包包含.pdb文件和不包含“内容”文件夹(所以只有'lib')。
如何我可以更改命令来执行此操作?
答案 0 :(得分:13)
不幸的是,我不认为你可以在通过项目打包时排除内容文件和包含.pdb文件。你可以做一个或另一个。
首先,创建一个nuspec文件(nuget spec
命令使其快速生成)并将其放在与项目相同的位置。打包项目时,NuGet.exe会将规范视为项目信息的补充。
要删除内容文件夹,在打包同时具有.nuspec文件的项目时,规范中的空<files />
节点将指示您不需要任何内容文件,即使它们存在于项目
要包含调试文件,请在规范中添加以下内容:
<files>
<file src="bin\*.pdb" target="lib\net35\" />
</files>
但这会告诉工具你做有内容,然后它会添加所有其他文件。或许,你可以为你的项目制作一个symbol package。
另一种选择是仅从规范(nuget pack Test.nuspec
)构建,并准确指定要包含的文件。它更耗时,但它可以让您完全控制包的内容。
答案 1 :(得分:1)
在您不想打包的内容文件中,您是否需要它们具有&#34;内容&#34;的构建操作?在您的项目中(在Visual Studio中的文件的属性窗口中,如果这是您的IDE)?
如果可以将构建操作更改为&#34;无&#34; (或其他任何东西),然后它不会在内容文件夹中结束。
答案 2 :(得分:0)
以下解决方案有效 - 如果您不介意包含源文件。 要忽略内容文件,请将这样一个空节点添加到您的nuspec:
<files>
</files>
然后运行:
nuget pack C:\Projects\Test\Test.vbproj -Symbols
nuget push *.symbols.nupkg -Source \\nas1\NuGet