也许有点奇怪,但目前正在研究是否有可能为项目实现程序集信息的自定义格式。
在程序集信息中,您可以选择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'发布于 2014-03-12 14:30:05
为此,我更喜欢使用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;发布于 2014-03-12 14:30:45
这将无法工作,因为AssemblyVersionAttribute的构造函数最多占用字符串中的4个值。
版本字符串的格式为: major。小调。构建。修订。
MSDN链路
发布于 2014-03-12 14:31:26
AssemblyVersionAttribute被转换为版本类。
它只有主要的,次要的,构建的,修订的号码:你不能使用5个数字。
如果您想使用更多的数字,可以使用AssemblyInformationalVersion
它不是一个Version Class,而是一个用于更描述性的程序集版本控制的string:
[assembly: AssemblyInformationalVersion("1.12.0.3050.1234 Release - Any CPU")]但无论如何,您应该提供没有第五个号码的AssemblyVersion和/或AssemblyFileVersion
https://stackoverflow.com/questions/22354599
复制相似问题