如何在许多C#项目的树中协调汇编版本信息?

Pet*_*ahn 5 c# assemblies version

您采用了哪些方法来协调对程序集组的版本和版权的更改?

我有一个包含许多csprojs的树,每个csproj都有自己的AssemblyInfo文件.作为构建过程的一部分,我想设置版权年份和版本.看起来以下选项可用,但文件修改是我迄今为止看到的唯一一个:

  • 通过脚本修改所有文件
  • 包含带日期的资源(宏,带有公共静态变量的单例类)
  • 在命令行上覆盖AssemblyVersion(-DAssemblyVersion ="1.0.0.1"?)
  • 参考环境变量([assembly: AssemblyFileVersion("${ENV.VERSION")])

我习惯通过命令行参数保持源代码树在Java/C++中保持生成的文件的清洁,在单个文件中定义和集中所有版本规范.

您使用什么方法来保持版本同步和可管理?

谢谢

彼得

nos*_*nos 5

在顶部文件夹中,我放置了一个CommonAssemblyInfo.cs,其中包含...常见的东西,例如copyright和FileVersion.这个文件只包含一些默认属性,并由构建服务器上的脚本(一个简单的.bat文件)重新生成,在我的例子中是Hudson.删除每个项目AssemblyInfo.cs中的这些公共属性.

在解决方案的每个项目中,我添加此文件.但使用"添加为链接" - 在添加现有文件时,可在"添加"按钮的下拉列表中使用.即所有项目只包含对同一文件的引用,因此只有一个文件需要更新.