我有一个ASP.NET Core 3.1 Web应用程序。作为发布管道的一部分,我创建一个zip文件,该文件用于将应用程序部署到Azure。为了创建zip文件,我使用MSBUILD命令。因此,为了正确地对已部署的程序集进行版本控制,需要在.csproj文件中设置版本号,然后再运行MSBUILD命令。
是否有任何方法可以更新.csproj文件中的版本号,最好是可以在构建过程中从命令行运行的版本。
我已经考虑使用dotnet build / publish
设置版本号。问题是我不从该命令的结果创建zip文件。我通过MSBUIILD命令创建了zip文件,因此必须在.csproj文件中设置版本号。
我已经研究过编写Powershell脚本,但这似乎有点笨拙(尽管如果这是唯一的方法,那就这样吧)。
我正在使用TFS 2015来构建和部署Web应用。
虽然不漂亮,但是我具有以下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"