在构建时注入程序集版本号

Cha*_*les 6 .net versioning msbuild assemblies msbuild-task

我想在构建时更改C#项目的程序集版本号,方法是将其作为MSBuild命令行上的属性传递.

AssemblyInfo任务将在编译之前修改AssemblyInfo.cs中的程序集版本.这几乎是我想要的.问题是我不希望因源控制问题而更改AssemblyInfo.cs.我不希望所有这些AssemplyInfo.cs文件显示为被修改,并且每次我们进行构建时都需要检查.

我想要的是在编译后更改程序集版本号的"事物" - 可能使用post build weaving任务.这样的"事物"是否已经作为开源或零售产品存在?如果没有,有人可以指向我编写post build weaver任务的文档吗?

ben*_*sai 7

由于AssemblyVersion在编译时它会被装入程序集,因此AssemblyInfo.cs具有当前内部版本号的文件确实属于源代码管理.

如果您在源代码管理中存储它的问题是因为您不想要大量需要更新的文件,请尝试这样做.

您可以在解决方案中建立链接,以便所有项目都指向单个文件,例如SharedAssemblyInfo.cs.这是一个描述此过程的页面:

http://blogs.msdn.com/b/jjameson/archive/2009/04/03/shared-assembly-info-in-visual-studio-projects.aspx

您可以使用已知SharedAssemblyInfo.csAssemblyInfo任务来使用该文件,这将是唯一需要检入源代码控制的文件.