我已经纳入下面一行在CI-建立以创建一个私有的NuGet包每个建设:的NuGet:包括.pdb文件,并排除“内容”文件夹
nuget pack C:\Projects\Test\Test.vbproj -OutputDirectory \\nas1\NuGet
的集信息被读取为(包括版本号),并创建一个NuGet包。
我想包包括.pdb文件和不包含“内容”文件夹(所以只有'lib')。
如何我可以更改命令做到这一点?
我已经纳入下面一行在CI-建立以创建一个私有的NuGet包每个建设:的NuGet:包括.pdb文件,并排除“内容”文件夹
nuget pack C:\Projects\Test\Test.vbproj -OutputDirectory \\nas1\NuGet
的集信息被读取为(包括版本号),并创建一个NuGet包。
我想包包括.pdb文件和不包含“内容”文件夹(所以只有'lib')。
如何我可以更改命令做到这一点?
不幸的是,我不认为你可以同时排除内容文件和包括.pdb文件,同时通过项目打包。你可以做一个或另一个。
首先,制作一个nuspec文件(nuget spec
命令使此快速)并将它放在与您的项目相同的位置。当您打包项目时,NuGet.exe会将该规范视为您项目信息的补充。
要消除内容文件夹,打包同样具有.nuspec文件的项目时,规范中的空节点<files />
将指示不需要任何内容文件,即使它们存在于项目中也是如此。
包括调试文件,添加这样的事情您规格:
<files>
<file src="bin\*.pdb" target="lib\net35\" />
</files>
但会告诉工具,你做有内容,然后它会添加所有其他文件,以及。相反,您可以为您的项目制作一个symbol package。
另一种选择是从规范(nuget pack Test.nuspec
)中完全构建,并准确指定要包含的文件。它比较耗时,但它可以让你完全控制包裹的内容。
在您不想打包的内容文件上,是否需要它们在项目中具有“内容”构建操作(在Visual Studio文件的属性窗口中,如果这是您的IDE )?
如果将构建操作更改为“无”(或其他任何内容)是可以接受的,则它不会在内容文件夹中结束。
以下解决方案的工作原理 - 如果您不介意也包括源文件。 忽略的内容文件添加例如空节点您nuspec:
<files>
</files>
然后运行:
nuget pack C:\Projects\Test\Test.vbproj -Symbols
nuget push *.symbols.nupkg -Source \\nas1\NuGet
空的
给这一些更多的思考之后,我想这是技术上可以通过命令来做到这一点通过在规范中包含.pdb(如上所述),然后使用-Exclude标志来省略不需要的文件类型。但是你必须排除_every_单个文件类型,它不是包含在“内容”中的dll或pdb,这对你来说可能并不实际。 例如,这将从软件包中排除config,xml和变换文件(并包括pdb文件,因为它们设置在.nuspec中): 'nuget pack -Exclude ** \ *。config; * * \ *。xml; ** \ *。transform' – brainiac10 2012-02-03 17:15:21
+1用于消除带有空的''''节点的内容文件夹。 –
2013-05-23 14:24:09