65.9K
CodeProject 正在变化。 阅读更多。
Home

VS.NET 中递增构建号

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (8投票s)

2005 年 7 月 29 日

CPOL

2分钟阅读

viewsIcon

74476

downloadIcon

494

一个快速且简单的程序(60行代码),每次构建发布版本时都会更新版本构建号。

引言

在 VS 6 中,当我们构建一个新的 *.exe 文件时,构建号会自动递增。在 VS.NET 中,我发现缺少这个功能。在这里我提交一个快速且简单的程序(60行代码),每次构建发布版本时都会更新 AssemblyInfo.cs 中的版本行。

基础

Beau Scinner 已经详细介绍了基础知识,但它仅适用于 VS 6。在 VS.NET 中,存在一个 AssemblyInfo.cs 文件,它以单行形式包含 Application.ProductVersion 的信息

// 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 Revision and Build Numbers 
// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.13")]

IncBuildNo 读取此文件,将最后一个数字递增 1,然后将其写回。

调用 IncBuildNo

IncBuildNo 的第一个参数是 AssemblyInfo.cs 的**路径和文件名**。
它还可以读取第二个可选参数 Release。如果提供了第二个参数,但如果 arg!="Release"IncBuildNo 将不执行任何操作。我添加此选项是为了使 IncBuildNo 能够选择 VS.NET 环境 Release/Debug
如果您省略此第二个参数,或者第二个参数是 ReleaseIncBuildNo 将递增版本字符串的最后一个数字(否则它将跳过递增)。

在新版本中,我添加了一些错误输出到应用程序事件日志。

安装

如果您下载上面的项目,您将获得一个完整的已安装示例。

在您自己的项目中,请执行以下步骤

  1. IncBuildNo 复制到与 AssemblyInfo.cs 相同的目录中(通常是 $(ProductDir)
  2. 在 VS.NET 中,选择 项目 -> 属性 -> 构建事件
  3. Post-build Event CommandLine: 中插入:
    "$(ProjectDir)IncBuildNo" "$(ProjectDir)AssemblyInfo.cs" $(ConfigurationName)
  4. Run the Post-Build Event? 中选择 When build updates the project output

现在,每次构建新的发布版本时,版本的最后一个数字都会递增。

第一点注意:成功构建发布版本后,AssemblyInfo.cs 显示发布版本 +1。

第二点注意:如果您在构建应用程序时使用安装项目,可以在此安装项目的项目属性中的 postbuild 事件属性中插入一行。例如,我使用:

"$(ProjectDir)IncBuildNo" "$(ProjectDir)..\AssemblyInfo.cs" $(ConfigurationName) 

注意:在这种情况下,$(ProjectDir) 指向安装项目,而不是应用程序项目。这就是上述行中 ..\ 短语的原因。但是,只有在构建过程运行时才会发生递增,即您可以构建一个Release 版本而无需递增构建号。

我希望这能帮助到您。

© . All rights reserved.