可能有点奇怪,但目前正在研究是否有可能为项目的装配信息实现自定义格式。
在大会信息中,您可以选择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'
答案 0 :(得分:3)
为此,我更喜欢使用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;
答案 1 :(得分:1)
答案 2 :(得分:0)
AssemblyVersionAttribute
已转换为Version class。
它只有major,minor,build,版本号:你不能使用5个数字。
如果您想使用更多数字,可以使用AssemblyInformationalVersion
对于更具描述性的汇编版本控制,它不是Version Class
而是string
:
[assembly: AssemblyInformationalVersion("1.12.0.3050.1234 Release - Any CPU")]
但是你应该提供AssemblyVersion
和/或AssemblyFileVersion
没有第5个号码