更新.csproj文件中的版本号

问题描述 投票:0回答:1

我有一个ASP.NET Core 3.1 Web应用程序。作为发布管道的一部分,我创建一个zip文件,该文件用于将应用程序部署到Azure。为了创建zip文件,我使用MSBUILD命令。因此,为了正确地对已部署的程序集进行版本控制,需要在.csproj文件中设置版本号,然后再运行MSBUILD命令。

是否有任何方法可以更新.csproj文件中的版本号,最好是可以在构建过程中从命令行运行的版本。

我已经考虑使用dotnet build / publish设置版本号。问题是我不从该命令的结果创建zip文件。我通过MSBUIILD命令创建了zip文件,因此必须在.csproj文件中设置版本号。

我已经研究过编写Powershell脚本,但这似乎有点笨拙(尽管如果这是唯一的方法,那就这样吧)。

我正在使用TFS 2015来构建和部署Web应用。

versioning tfs-2015 asp.net-core-3.1
1个回答
0
投票

虽然不漂亮,但是我具有以下Powershell脚本来更新.csproj Version属性。

cls

Write-Host "Versioning started"

"Sources directory " + $Env:BUILD_SOURCESDIRECTORY
"Build number " + $Env:BUILD_BUILDNUMBER

$csprojfilename = $Env:BUILD_SOURCESDIRECTORY+"\MyProject.csproj"
"Project file to update " + $csprojfilename

[xml]$csprojcontents = Get-Content -Path $csprojfilename;

"Current version number is" + $csprojcontents.Project.PropertyGroup.Version

$oldversionNumber = $csprojcontents.Project.PropertyGroup.Version

$csprojcontents.Project.PropertyGroup.Version = $Env:BUILD_BUILDNUMBER
$csprojcontents.Save($csprojfilename)

"Version number has been udated from " + $oldversionNumber + " to " + $Env:BUILD_BUILDNUMBER

Write-Host "Finished"
© www.soinside.com 2019 - 2024. All rights reserved.