C#类库项目中实现版本号每次编译时自动增加

在C#类库项目中实现版本号每次编译时自动增加,可以使用MSBuild的目标或脚本来更新版本号。下面提供一个详细的方法,使用MSBuild脚本在每次编译时更新版本号。

方法:使用MSBuild任务更新版本号

1. 修改项目文件(.csproj)

首先,打开你的C#类库项目文件(.csproj),添加以下内容以使用MSBuild任务在编译前自动更新版本号。

 

xml

复制代码

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net5.0</TargetFramework> <!-- 默认版本号 --> <Version>1.0.0.0</Version> <FileVersion>1.0.0.0</FileVersion> <AssemblyVersion>1.0.0.0</AssemblyVersion> </PropertyGroup> <ItemGroup> <None Update="Version.txt"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup> <Target Name="IncrementVersion" BeforeTargets="BeforeBuild"> <Exec Command="powershell -ExecutionPolicy Bypass -File UpdateVersion.ps1" /> </Target> </Project>

2. 创建版本号文件

在项目根目录下创建一个名为Version.txt的文件,初始内容如下:

1.0.0.0

3. 编写PowerShell脚本

在项目根目录下创建一个名为UpdateVersion.ps1的PowerShell脚本,用于更新版本号。脚本内容如下:

$versionFilePath = "Version.txt"

# 读取当前版本号
$currentVersion = Get-Content $versionFilePath

# 拆分版本号
$versionParts = $currentVersion -split '\.'
$major = [int]$versionParts[0]
$minor = [int]$versionParts[1]
$build = [int]$versionParts[2]
$revision = [int]$versionParts[3]

# 递增修订号
$revision++

# 更新版本号
$newVersion = "$major.$minor.$build.$revision"

# 将新版本号写入Version.txt
Set-Content $versionFilePath $newVersion

# 更新项目文件中的版本号属性
$projectFilePath = "YourProjectName.csproj"  # 请将此行替换为你的实际项目文件名
$projectFileContent = Get-Content $projectFilePath
$updatedProjectFileContent = $projectFileContent -replace '<Version>.*<\/Version>', "<Version>$newVersion</Version>"
$updatedProjectFileContent = $updatedProjectFileContent -replace '<FileVersion>.*<\/FileVersion>', "<FileVersion>$newVersion</FileVersion>"
$updatedProjectFileContent = $updatedProjectFileContent -replace '<AssemblyVersion>.*<\/AssemblyVersion>', "<AssemblyVersion>$newVersion</AssemblyVersion>"
Set-Content $projectFilePath $updatedProjectFileContent
 

请注意,将脚本中的YourProjectName.csproj替换为实际的项目文件名。

整体流程解释:

  1. 项目文件(.csproj)修改

    • 配置了版本号属性(VersionFileVersionAssemblyVersion)。
    • 添加了一个MSBuild目标IncrementVersion,在每次编译前运行PowerShell脚本。
  2. Version.txt文件

    • 存储当前的版本号。
    • 初始内容为1.0.0.0
  3. PowerShell脚本(UpdateVersion.ps1)

    • 读取并解析当前版本号。
    • 递增修订号。
    • 更新Version.txt文件中的版本号。
    • 更新项目文件中的版本号属性。

这种方法通过每次编译前运行一个PowerShell脚本来自动递增版本号,实现了版本号的自动管理。

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值