【问题标题】:Visual Studio c++ how to add version info read from .rc or .h to targetname?Visual Studio c ++如何将从.rc或.h读取的版本信息添加到targetname?
【发布时间】:2014-12-29 22:06:15
【问题描述】:

是否可以从资源脚本文件 (.rc) 或包含文件 (.h) 中自动读取版本数据(主要/次要/修订)并将其添加到 $(TargetName) / OUTPUT FILE 属性中,以便生成的可执行文件在其名称中包含版本信息?

版本数据在每次构建时增量生成,因此构建脚本必须解析版本内容并使用它来命名输出文件。

【问题讨论】:

  • 很抱歉,我没有完全解释清楚:版本数据是在每次构建时增量生成的。因此,它必须作为构建脚本的一部分自动完成。

标签: c++ properties visual-studio-2013 build filenames


【解决方案1】:

您可以使用属性宏。因此,如果您要打开属性管理器(视图 > 属性管理器)并右键单击配置并选择添加新属性表...然后通过右键单击该属性表并选择属性来编辑该属性表。然后在 Common Properties 和 User Macros 下使用 Add Macro 按钮创建一个新宏。

假设您将其命名为值为 1.0.0 的版本,那么您可以从对话框中确定并转到项目属性,并将目标名称设为 $(ProjectName)_$(Version) 并构建您的项目,然后会工作的。

属性表是纯文本,因此您的自动化脚本可以在每次构建时编辑此文件。如果 VS 没有从一个构建到下一个构建,您可能需要删除一个隐藏文件,即 .suo 文件。

如果我可以建议其他一些方法。

  • 也许您的构建脚本可以重命名输出文件?

  • 在 VS 中,您可以有一个构建后步骤,该步骤可以从可执行文件中读取版本信息并重命名文件。这是一个可以用来读取版本信息的函数调用:http://msdn.microsoft.com/en-us/library/windows/desktop/ms647003%28v=vs.85%29.aspx 它可以全部通过脚本来完成。

  • 尝试 CMake。 CMake 允许您生成 VS 解决方案和项目文件,并且可以做一些非凡的事情。

希望对您有所帮助!

【讨论】:

  • 谢谢!我试图避免从外部工具执行此操作,因为我认为构建属性将是一种直接的方式,但我想重命名文件要简单得多。我一定会看看 CMake - 也感谢您的提示。
  • 以防万一有些人无法为我找到 Property Manager,它位于 View > Other Windows > Property Manager 下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 2015-07-21
  • 2017-04-03
  • 2014-06-26
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
相关资源
最近更新 更多