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时
当您进行向后兼容的错误修复时,修补程序版本。