我正在考虑简化从我的构建系统中出来的nuget软件包,并且我仍然坚持如何只打包所需的文件。
我有几个配置共享Root VCS checkout。我有一个使用单元测试运行调试版本的配置。我还有一个发布版本的发布配置,然后这个配置也使用TeamCity OctoPack插件来创建nuget包。
我想要实现的是构建不包含*.pdb
和*.xml
文档文件的nuget包,因为这些文档不是发布部署所必需的。
我在OD网站上浏览了这个页面:
http://docs.octopusdeploy.com/display/OD/Using+OctoPack
根据这个页面,OctoPack默认只应打包所需的文件。我并不完全清楚如何或者需要做些什么来解决这个问题,因为它似乎没有按照描述的那样工作。
似乎一个解决方案是为我期待的项目提供一个nuspec文件,但我也想知道在我离开之前是否有一些我失踪的东西路由。
我还有一些在后期构建事件中复制的MEF插件,这些插件并不包含在nuget包中,实际上它们是应用程序运行所必需的。我想我需要明确使用nuspec文件,但想确认一下。
达到我需要的最简单方法是什么?
答案 0 :(得分:1)
假设您正在运行更高版本的OctoPack,您可以在发布版本中设置一个系统参数system.DebugType = None
,该参数将传递给OctoPack构建脚本并阻止创建PDB 。
这简单地覆盖了csproj msbuild文件中定义的设置(假设为C#),因此您可以在任何想要阻止在构建配置级别(而不仅仅是OctoPack)创建PDB的地方使用它。我通常更喜欢这种方法,因为它可以防止开发人员在项目文件中更改构建中的副作用。
至于xml文件,我还没有尝试过这个,但你可以尝试类似的方法并创建一个系统参数system.DocumentationFile = ""
来清空输出。
答案 1 :(得分:0)
如果您确实要确保删除了这些文件,可以通过以下几种方法执行此操作。将部署过程修改为: