You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在每次Msbuild Pack时自动递增项目版本号最后一位?

实现NuGet包版本号最后一位自动递增的方法

以下几种方案可以实现每次执行msbuild pack时自动递增版本号的最后一位:

方案1:外部文件存储+MSBuild目标实现

这种方法通过外部文件持久化版本号,打包前自动完成读取、递增、写回的流程。

  1. 在项目根目录创建Version.txt文件,初始内容写0.0.1
  2. 打开项目的.csproj/.vbproj文件,添加如下配置:
<PropertyGroup>
  <!-- 指定版本文件的路径 -->
  <VersionFile>$(MSBuildProjectDirectory)\Version.txt</VersionFile>
  <!-- 从文件读取当前版本号 -->
  <VersionPrefix>$([System.IO.File]::ReadAllText($(VersionFile)).Trim())</VersionPrefix>
</PropertyGroup>

<Target Name="IncrementVersion" BeforeTargets="Pack">
  <!-- 拆分版本号并递增最后一位 -->
  <PropertyGroup>
    <VersionParts>$([System.Text.RegularExpressions.Regex]::Split($(VersionPrefix), '\.'))</VersionParts>
    <Major>$(VersionParts[0])</Major>
    <Minor>$(VersionParts[1])</Minor>
    <Patch>$([System.Int32]::Parse($(VersionParts[2])) + 1)</Patch>
    <NewVersionPrefix>$(Major).$(Minor).$(Patch)</NewVersionPrefix>
  </PropertyGroup>

  <!-- 将更新后的版本号写回文件 -->
  <WriteLinesToFile File="$(VersionFile)" Lines="$(NewVersionPrefix)" Overwrite="true" />

  <!-- 更新项目的VersionPrefix属性 -->
  <PropertyGroup>
    <VersionPrefix>$(NewVersionPrefix)</VersionPrefix>
  </PropertyGroup>
</Target>

配置完成后,每次执行msbuild pack时,会先自动递增版本号最后一位,再生成对应版本的NuGet包。

方案2:PowerShell脚本批量处理

编写PowerShell脚本,在打包前直接修改项目文件中的VersionPrefix值。

  1. 新建IncrementAndPack.ps1脚本,内容如下:
# 替换为你的项目文件路径
$projectPath = ".\YourProject.csproj"

# 读取项目文件XML内容
$projectXml = [xml](Get-Content $projectPath)
$currentVersion = $projectXml.Project.PropertyGroup.VersionPrefix

# 拆分版本号并递增最后一位
$versionParts = $currentVersion -split '\.'
$versionParts[2] = [int]$versionParts[2] + 1
$newVersion = $versionParts -join '.'

# 更新项目文件中的版本号
$projectXml.Project.PropertyGroup.VersionPrefix = $newVersion
$projectXml.Save($projectPath)

# 执行打包命令
msbuild $projectPath /t:Pack
  1. 每次打包时直接运行该脚本,即可自动完成版本号递增和打包操作。

方案3:GitVersion工具(可选)

如果项目用Git做版本控制,可使用GitVersion工具自动生成递增版本号。通过配置规则,让它每次打包时自动递增补丁版本号(最后一位),无需手动维护版本文件。


内容的提问来源于stack exchange,提问作者Thrackerzod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:35:16