首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的Visual自动递增的版本号语法有什么问题?

我的Visual自动递增的版本号语法有什么问题?
EN

Stack Overflow用户
提问于 2010-12-05 15:49:12
回答 2查看 3.2K关注 0票数 4

我知道Visual无法以人们所期望的方式增加版本号,但它支持随机化构建号

我的AssemblyInfo.cs文件包含:

代码语言:javascript
复制
// 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 Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]

然而,在我看来,它提供了一些荒谬的结果(甚至允许Visual的伪随机版本号):

因此,更简单的问题是:

我应该在AssemblyInfo.cs中加入什么来让它工作呢?

来自MSDN (为清晰而重新格式化):

可以指定所有值,也可以使用星号(*)接受默认的版本号、修订号或两者。例如, 大会:大会版本(“2.3.25.1”) 指示2作为主要版本,3作为次要版本,25作为内部版本号,1作为修订编号。版本号,如 大会:大会(“1.2.*”) 指定1作为主版本,2指定为次要版本,并接受默认的生成和修订编号。版本号,如 大会:大会(“1.2.15.*”) 指定1作为主版本,2指定为次要版本,15指定为内部版本号,并接受默认的修订编号。 默认的版本号每天递增。默认的修订编号是随机的。

我认为这意味着版本号是:

代码语言:javascript
复制
[1.0.0.0]
major.minor.build.revision

代码语言:javascript
复制
[1.0.0.*]
major.minor.build.[random]

代码语言:javascript
复制
[1.0.*]
major.minor.[daynumber].[random]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-05 15:59:28

我确信你所经历的问题是由这句话引起的:

代码语言:javascript
复制
[assembly: AssemblyFileVersion("1.0.*")]

问题是,AssemblyFileVersion**,Visual不支持自动增量,只支持** AssemblyVersion**.**,因此您的代码的其余部分应该是可以的。试着简单地注释掉第二行,看看你是否得到了预期的结果。您的文件和产品的所有版本信息都应该是等效的。

我不知道这到底是在哪里被正式记录的(除了在Properties下的“程序集信息”对话框中输入"File“字段中的”File“字段时收到的错误消息以外),但是它在我访问过的每台机器上都是这样工作的。

如果您完全厌倦了Visual在留给自己的设备时是如何做事情的(您提到了它的伪随机数的愚蠢之处),那么尝试一下附加的这个小宝石。它会改变你的生活。

票数 12
EN

Stack Overflow用户

发布于 2010-12-05 16:21:36

屏幕截图显示了使用shell属性工作表扩展处理程序来显示嵌入大多数EXE和DLL文件(包括.NET文件)中的非托管版本资源。不幸的是,从Vista开始,该处理程序不再显示该资源中的可选字段。ProductVersion字段是标准字段,但不是AssemblyVersion字段。您必须在AssemblyInfo.cs中添加相应的属性。例如:

大会: AssemblyInformationalVersion("1.2.3.4")

不幸的是,这并不是一个很好的名字匹配。当它丢失时,编译器将复制AssemblyVersion的值,这就是您得到星号的方式。

编译器确实会在资源中发出额外的字段。您可以在File + Open + File中看到它,选择程序集,打开版本节点,然后双击资源#1:

这是从以下方面产生的:

代码语言:javascript
复制
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyInformationalVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.0.0.0")]

就在那儿,你只是在探索者中看不见。很遗憾,希望有一天他们能解决这个问题。还请注意生成的AssemblyVersion,修订号为18404。这不是随机的,我在上午10点13分建造了这个EXE那是午夜以来的18404 *2秒。

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

https://stackoverflow.com/questions/4359597

复制
相关文章

相似问题

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