用于在 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 上进行了测试。 请给我发送电子邮件以获取支持信息和源文件信息。