我在VSTS中托管了一个项目,我正在尝试构建定义。我正在尝试执行一个powershell脚本,在构建项目之前更新AssemblyVersion.cs。当我在本地运行脚本时它工作正常,但是当它在构建过程中运行时,脚本运行时没有错误,但是AssemblyVersion.cs没有更新。
$regex = '\[assembly: AssemblyVersion\("(.*)"\)\]'
$assemblyInfoPath = "..\Properties\AssemblyInfo.cs"
(Get-Content $assemblyInfoPath) | ForEach-Object {
if($_ -match $regex)
{
# Get current version, and update revision number
$version = [version]$matches[1]
$newVersion = "{0}.{1}.{2}.{3}" -f $version.Major, $version.Minor, $version.Build, ($version.Revision + 1)
'[assembly: AssemblyVersion("{0}")]' -f $newVersion
Write-Host "Version updated to: $newVersion"
}
else
{
$_
}
} | Set-Content $assemblyInfoPath
Build输出表明版本已更新,但是当我在File Viewer中查看AssemblyInfo.cs时,它显示的是旧版本。
答案 0 :(得分:0)
构建过程不会在流程结束时自动检入/提交对源代码所做的更改。你必须写一个脚本来做到这一点。
答案 1 :(得分:0)
您需要签入或推送对远程存储库的更改。
如果您使用的是TFVC,则TFVC Build Tasks extension包含可以检查更改的TFVC-Check-in Changes步骤/任务。
如果您使用Git,可以添加这些步骤/任务以推送更改:
git
;参数:add **\*.*;
工作文件夹:$(build.sourcesdirectory))
git
;参数:commit -m "update";
工作文件夹:$(build.sourcesdirectory))
push origin HEAD:$(Build.SourceBranchName)
;工作文件夹:$(build.sourcesdirectory))
另一方面,您还可以构建自定义构建/发布任务,并在构建/发布中使用它。有关自定义构建/发布任务的更多信息,请参阅:Add a build task
注意:建议不要在构建或发布中签入/推送对远程存储库的更改。