用于在 Visual Studio .NET 中自动递增版本号的插件






2.55/5 (22投票s)
2003年5月14日
3分钟阅读

133043

472
终于有了一个用于 VC++.NET 的构建号递增插件!
引言
我发现自动递增 Visual C++ 项目构建号最方便的方法是通过一个插件,该插件在每次成功发布构建时修改构建号。我在 CodeGuru 上找到了一个用于执行此操作的插件,但它仅适用于 Visual Studio 6.0。我花了很多时间寻找一个为 Visual Studio .NET 编写的类似插件,但没有找到。因此,在对 Visual Studio 自动化模型进行几天的研究后,我自己编写了一个。
使用插件而不是使用宏或单独可执行文件的优点
第一个优点是与 Visual Studio .NET 无缝集成,因此无需进行自定义构建步骤、预链接步骤或以其他方式触发构建号递增。 使用插件的主要优点是,它使用 Visual Studio .NET 自动化代码模型来修改文件,因此开发环境“知道”这些更改并比外部解决方案更好地管理它们。
那么,插件是做什么的?
在发布配置上成功构建项目的每个版本时,该插件会搜索项目中包含的名为 version.h 的文件。 然后,它搜索以下一个或所有宏,并以下面描述的方式修改它们的内容。 version.h 中应该存在的宏(至少需要一个)
- FILE_VERSION
- PRODUCT_VERSION
- FILE_VERSION_STR
- PRODUCT_VERSION_STR
宏可以放置在文件中的任何位置。 该文件除了这些宏之外还可以包含其他内容。 version.h 文件的示例
#define FILE_VERSION 1,0,0,1 #define PRODUCT_VERSION 1,0,0,9 #define FILE_VERSION_STR "1, 0, 0, 1\n" #define PRODUCT_VERSION_STR "1, 0, 0, 9\n" <!-- end the block of source code -->
在发布配置上成功构建项目后,version.h 将变为
#define FILE_VERSION 1,0,0,2 #define PRODUCT_VERSION 1,0,0,10 #define FILE_VERSION_STR "1, 0, 0, 2\n" #define PRODUCT_VERSION_STR "1, 0, 0, 10\n" <!-- end the block of source code -->
提示: 所有这些宏都可以包含任何类型的字符串,其中至少包含一个十进制数。 只有该字符串上的最后一个数字会递增。 例如,如果 FILE_VERSION 是 1.2,则构建后,它将变为 1.3。
好的,那么如何使用该插件来增加版本资源中包含的构建号?
在 Microsoft 支持上找到了一篇文章,这里 解释了如何以安全的方式执行此操作。 基本上,您必须从您的 .rc 文件中剪切版本资源,并将其粘贴到您的 .rc2 文件中。 然后将 FILEVERSION 和 PRODUCTVERSION 语句的值替换为 FILE_VERSION 和 PRODUCT_VERSION。 然后,您必须在版本资源的顶部包含文件 version.h。
插件安装
- 将文件 autobuildnumber.dll 保存在一个目录中。
- 从插件的目录运行命令“regsvr32 autobuildnumber.dll”。
- 双击文件 autobuildnumber.reg。
- 转到 Visual Studio .NET IDE,然后从工具->插件管理器菜单中,选中“AutoBuildNumber”框。 您还可以选中“启动”和“命令行”框。
- 在您的项目中包含一个 version.h 文件(包含上述宏)。
- 就是这样。
注释
成功递增构建号后,该插件会在构建输出窗口中显示一条输出消息,指示成功。 如果 version.h 文件在源代码控制下并且未检出,则该插件会在构建输出窗口中显示一条描述错误的消息。 在这种情况下,构建号不会递增。
未包含源文件。 该插件是使用 Visual Studio .NET 2003 构建的,并在 Visual Studio .NET 2002 和 2003 上进行了测试。 请给我发送电子邮件以获取支持信息和源文件信息。
