我知道Visual无法以人们所期望的方式增加版本号,但它支持随机化构建号
我的AssemblyInfo.cs文件包含:
// 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指定为内部版本号,并接受默认的修订编号。 默认的版本号每天递增。默认的修订编号是随机的。
我认为这意味着版本号是:
[1.0.0.0]
major.minor.build.revision而
[1.0.0.*]
major.minor.build.[random]和
[1.0.*]
major.minor.[daynumber].[random]发布于 2010-12-05 15:59:28
我确信你所经历的问题是由这句话引起的:
[assembly: AssemblyFileVersion("1.0.*")]问题是,AssemblyFileVersion**,Visual不支持自动增量,只支持** AssemblyVersion**.**,因此您的代码的其余部分应该是可以的。试着简单地注释掉第二行,看看你是否得到了预期的结果。您的文件和产品的所有版本信息都应该是等效的。
我不知道这到底是在哪里被正式记录的(除了在Properties下的“程序集信息”对话框中输入"File“字段中的”File“字段时收到的错误消息以外),但是它在我访问过的每台机器上都是这样工作的。
如果您完全厌倦了Visual在留给自己的设备时是如何做事情的(您提到了它的伪随机数的愚蠢之处),那么尝试一下附加的这个小宝石。它会改变你的生活。
发布于 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:

这是从以下方面产生的:
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyInformationalVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.0.0.0")]就在那儿,你只是在探索者中看不见。很遗憾,希望有一天他们能解决这个问题。还请注意生成的AssemblyVersion,修订号为18404。这不是随机的,我在上午10点13分建造了这个EXE那是午夜以来的18404 *2秒。
https://stackoverflow.com/questions/4359597
复制相似问题