【问题标题】:How can I sync the build version number with the version number on the executable?如何将构建版本号与可执行文件上的版本号同步?
【发布时间】:2016-04-11 05:44:10
【问题描述】:

当使用传统语言构建应用程序时,构建版本号作为版本嵌入到编译的可执行文件中(右键单击属性,版本就会出现)。这是一段神奇而美好的时光,因为这个过程是自动的,并且与您项目中当前的发布版本同步。 (当我参考版本号声明构建时,我的实际意思是整个版本字符串Major.Minor.Build.Revision

现在,Visual Studio 仍然具有相同的功能,只是似乎没有任何方法可以自然地将其嵌入到已发布的可执行文件中。它在使用它来命名构建所在的文件夹方面做得很好,但里面的 exe 总是读取 v1.0.0.0,即使在使用以下行修改 AssemblyInfo 文件之后:

<Assembly: AssemblyVersion("1.0.*")>

.. 仅根据被屏蔽部分的当前时间设置任意数字,即使如此,这也不是文件版本显示的内容..

当尝试更改 AssemblyFileVersion 值时,从

<Assembly: AssemblyFileVersion("1.0.0.0")>

到:

<Assembly: AssemblyFileVersion("1.0.*")>

不支持。即使它确实有效,这也永远不会与项目的构建相匹配:

如何将上述数字自动嵌入到编译后的可执行文件中,以便版本显示在此处:

请注意,文件版本产品版本既不反映AssemblyVersion,也不反映构建设置中的版本。

【问题讨论】:

    标签: c# vb.net winforms visual-studio-2013 msbuild


    【解决方案1】:

    如果您使用的是 'Release' exe,那么您应该更改以下版本: 项目 > 属性 > 装配信息

    【讨论】:

    • 我假设您的意思是在 c# 项目中。从上面的Project > Properties 截图可以看出,没有这样的选项。其次,我想要一种自动的方式来做到这一点。第三, AssemblyVersion != AssemblyFileVersion 。在 VB.NET 中,这个“属性”位于名为 AssemblyInfo.vb 的文件中(在 c# 中可以肯定它是相同的名称,只是用 .cs 代替),如您所见,我已经在该文件中。当 VS 增加一个数字时,手动增加构建有点愚蠢——但除了文件夹名称外从不使用。
    • OK,尝试删除以下行:
    • 就可以了。仍然会很高兴从项目中获得实际构建而不是来自微软的随机数,但是。结果现在是 1.0.5945.4466 ,其中项目自动增量是 1.0.0.41 。由于这是我最接近拥有一些合理的东西而不是所有版本 1.0.0.0 可执行文件,我给你这个答案。如果你能想出一种使用自动增量的方法,那就太好了。
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2010-09-30
    相关资源
    最近更新 更多