首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#应用程序-自定义组装版本格式

C#应用程序-自定义组装版本格式
EN

Stack Overflow用户
提问于 2014-03-12 14:26:48
回答 3查看 4.1K关注 0票数 0

也许有点奇怪,但目前正在研究是否有可能为项目实现程序集信息的自定义格式。

在程序集信息中,您可以选择4个数字系统,因此major.minor.build.revision

我被要求尝试将其转换为一个5位系统,比如1.2.34.556.1234,并想知道这是否可能。

我只是尝试以编程方式修改它,但这只是返回错误:

代码语言:javascript
复制
Error emitting 'System.Reflection.AssemblyVersionAttribute' attribute -- 'The version specified '1.2.34.556.1234' is invalid'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-12 14:30:05

为此,我更喜欢使用AssemblyFileVersion而不是AssemblyVersion

前者具有开放格式,可以容纳几乎任何附加信息,而后者,AssmeblyVersion是打算由.NET框架使用的,而强制是一种严格的编号方案,如果出现错误,就会产生编译器错误。

代码语言:javascript
复制
[assembly: AssemblyVersion("4.0.*")] //Strict Format, for framework use
[assembly: AssemblyFileVersion("4.0.20.110708")]    //Flexible Format more suitable for product versions

更新:每一个OP注释的,下面是如何通过反射轻松地访问该属性:

代码语言:javascript
复制
Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
票数 4
EN

Stack Overflow用户

发布于 2014-03-12 14:30:45

这将无法工作,因为AssemblyVersionAttribute的构造函数最多占用字符串中的4个值。

版本字符串的格式为: major。小调。构建。修订。

MSDN链路

票数 1
EN

Stack Overflow用户

发布于 2014-03-12 14:31:26

AssemblyVersionAttribute被转换为版本类

它只有主要的,次要的,构建的,修订的号码:你不能使用5个数字。

如果您想使用更多的数字,可以使用AssemblyInformationalVersion

它不是一个Version Class,而是一个用于更描述性的程序集版本控制的string

代码语言:javascript
复制
[assembly: AssemblyInformationalVersion("1.12.0.3050.1234 Release - Any CPU")]

但无论如何,您应该提供没有第五个号码的AssemblyVersion和/或AssemblyFileVersion

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22354599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档