AssemblyInfo版本信息星号

它在AssemblyInfo.cs中为C#项目说,可以指定版本信息*

 // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] 

我改变了这个:

 [assembly: AssemblyVersion("1.0.*.*")] [assembly: AssemblyFileVersion("1.0.*.*")] 

这是我从编译器得到的错误:

 error CS0647: Error emitting 'System.Reflection.AssemblyVersionAttribute' attribute -- 'The version specified '1.0.*.*' is invalid' warning CS1607: Assembly generation -- The version '1.0.*.*' specified for the 'file version' is not in the normal 'major.minor.build.revision' format 

它是如何工作的?

对于“自动”内部版本号,语法(请参阅MSDN )可以是:

 [assembly: AssemblyVersion("1.0.0.*")] 

要么:

 [assembly: AssemblyVersion("1.0.*")] 

*这意味着一切都是自动的 。 你不能有自动编译号码和固定版本号,那么这个语法是不正确的:

 [assembly: AssemblyVersion("1.0.*.0")] 

对于AssemblyFileVersionAttribute您不能使用*特殊字符,因此您必须提供完整有效的版本号。 请注意,如果您没有提供 AssemblyFileVersionAttribute那么您将自动获得正确的FileVersionInfo (使用相同版本的AssemblyVersionAttribute )。 只有在需要设置不同的版本时,才需要指定该属性。

 [assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyFileVersion("1.0.*")] 

只要记得注释AssemblyFileVersion行,否则自动生成的程序集版本将始终为“1.0.0.0”。

在我看来,使用[assembly: AssemblyVersion("xyz*")]Patch不应该被自动编号。 例如:

[汇编:AssemblyVersion(“1.2.3。*”)]

AssemblyVersion使用'*'是好的,但是遵循seemver.org我们应该使用*作为版本结构<major version>.<minor version>.<build number>.<revision> )的<major version>.<minor version>.<build number>.<revision>

给定版本号MAJOR.MINOR.PATCH,增加:

MAJOR版本,当您进行不兼容的API更改时,

MINOR版本,当您以向后兼容的方式添加function时

当您进行向后兼容的错误修复时,修补程序版本。