繁体   English   中英

如何在我的许多 C# 项目的树中协调程序集版本信息?

[英]How do I coordinate assembly version information in my tree of many C# projects?

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

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

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

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

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

谢谢

彼得

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

在解决方案的每个项目中,我都添加了这个文件。 但使用“添加为链接” - 添加现有文件时,在“添加”按钮的下拉菜单中可用。 即所有项目只包含对同一文件的引用,因此只有一个文件需要更新。

无论您采用哪种方式来实际更新版本号,都可以使用单独的 AssemblyInfo.cs 文件来指定共享版本。

就结构而言,在其他项目上方的某个级别创建文件,然后将其添加到所有项目(从 Visual Studio 中),但这样做时请确保 select '添加为链接'。

我也使用了 MSBuild 任务来处理更新,我只是想不出 - 你使用哪个构建引擎?

理论上,您可以拥有一个程序集文件。 只需在所有其他项目中链接文件:添加现有文件>>链接文件而不是添加(按钮下拉菜单)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM