c#应用程序-自定义程序集版本格式
本文关键字:版本 格式 程序集 自定义 应用程序 | 更新日期: 2023-09-27 17:49:39
可能有点奇怪,但目前正在研究是否有可能为项目的汇编信息实现自定义格式。
在Assembly信息中,您可以选择4号系统,因此major.minor.build.revision
我被要求尝试将其更改为5个数字系统,所以像1.2.34.556.1234
这样的东西,并想知道这是否可能。
我只是简单地尝试只是修改它编程,但这只是返回错误:
Error emitting 'System.Reflection.AssemblyVersionAttribute' attribute -- 'The version specified '1.2.34.556.1234' is invalid'
出于这个目的,我更喜欢使用AssemblyFileVersion
而不是AssemblyVersion
。
前者有一个开放的格式,几乎可以容纳任何额外的信息,而后者,AssmeblyVersion
是为。net框架使用的,强制执行一个严格的编号方案,如果违反,会产生编译器错误。
[assembly: AssemblyVersion("4.0.*")] //Strict Format, for framework use
[assembly: AssemblyFileVersion("4.0.20.110708")] //Flexible Format more suitable for product versions
更新:根据OP注释,下面是如何通过反射轻松访问该属性的方法:
Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
这将不起作用,因为AssemblyVersionAttribute的构造函数在字符串中最多接受4个值。
版本字符串的格式为:major。轻微的。构建。修订。
MSDN链接
将AssemblyVersionAttribute
转换为Version类。
只有major,minor,build,revision号:你不能使用5个数字。
如果你想使用更多的数字,你可以使用AssemblyInformationalVersion
对于更具描述性的程序集版本控制,它不是Version Class
,而是string
:
[assembly: AssemblyInformationalVersion("1.12.0.3050.1234 Release - Any CPU")]
但是您应该提供AssemblyVersion
和/或AssemblyFileVersion
,而不需要第5个数字