我在Visual Studio中有一个相当大的解决方案。有没有办法一次更新解决方案中所有程序集的主要/次要版本号?
答案 0 :(得分:42)
您可以在解决方案中的所有项目之间共享AssemblyInfo.cs文件。此共享文件应包含版本号。要共享它,必须使用VS中的“添加现有文件”,然后在文件对话框中选择“添加为链接”。每个项目都有私有和共享的AssemblyInfo.cs。私有的仍然包含非版本属性。
我有一个TeamCity设置,我在每个TeamCity构建中使用实际的构建版本生成共享文件,它运行得很漂亮。
答案 1 :(得分:10)
我们有一个具有版本号的AssemblyInfoCommon.cs,并通过引用包含在每个项目中。其他AssemblyInfo.cs文件仍然存在,但仅包含特定于程序集的信息(标题和说明)。所以我们每个C#项目只有一个文件要更新。
答案 2 :(得分:7)
您还可以在其中一个类中拥有一个公共const字符串,它表示内部版本号,并在所有AssemblyInfo.c中用于不同的项目。当然,这必须在所有其他项目引用的项目中,以便工作。
如果您不喜欢在所有项目中引用相同的AssemblyInfo.cs,那么这是一个不错的选择。
编辑:注意!当您使用多种语言(在我的情况下为F#和C#)时,这也有效。
答案 3 :(得分:4)
搜索/替换?
版本号毕竟存储在文本文件中(每个项目的Properties文件夹下的AssemblyInfo.cs)。
答案 4 :(得分:1)
我前段时间对一个需要高度管理版本化的项目使用了一个非常有用的实用程序:
http://www.codeproject.com/KB/macros/versioningcontrolledbuild.aspx
答案 5 :(得分:0)
此外,您可以创建一些“核心”程序集,并将每个程序集引用添加到“核心”程序集中。 “核心”组装将保持不变。在这种情况下,每个程序集信息文件都将从“核心”常量设置为asembly版本。 例如:
“core”程序集的文件Ver.cs为常量: public const string Value =“0.0.0.99”;
每个解决方案中的汇编信息将: [assembly:AssemblyFileVersion(Ver.Value)]