我有以下场景:应用程序是通过IDE和构建脚本构建的.构建脚本用于初始设置(获取依赖项,设置环境),生成二进制文件以及持续集成过程.我希望二进制文件具有AssemblyFileVersion作为构建的月和日,以及修订版的svn修订版.这会导致AssemblyInfo.cs在每个修订版本上更改,这会在源代码管理日志中产生大量噪音.我可以忽略这些文件,但是作为设置的一部分,我需要重新生成这些文件.
我想知道是否有人有任何其他想法,或者你在这种情况下做了什么.
现在,我已经找到了安迪·怀特回答的解决方案:
AssemblyInfo.cs由来自http://msbuildtasks.tigris.org/的AssemblyInfo任务生成,并保存在源控制树之外.
版本是[major].[minor].[month] [day].[svn revision].主要和次要是手动设置,其他由构建脚本管理.该社区任务包包括获得工作拷贝SVN版本和日期需要双方的任务.
不足之处:
当有人签出新副本时,必须运行构建脚本的安装目标,否则Visual Studio会抱怨丢失文件.这是我将来要删除的问题.
我认为AssemblyInfo.cs的一个常见做法是在构建过程中动态生成它,而不是保留静态文件.
通过生成,您可以使用任何您想要的任意/可配置设置.
我相信NAnt有一个
为此目的的任务.我猜测MSBuild也有类似的东西.或者您可以编写自定义文件生成脚本并使用它将自定义AssemblyInfo.cs推送到您的构建中.