TFS 2015 が提供する新しいビルド システムでは、アセンブリのバージョンを増やしながらソース管理にもチェックインするタスクをどのように達成しますか?
AssemblyInfo ファイルに記述されたソース管理で常に最新バージョンを利用できるようにしたいと考えています。
TFS 2015 が提供する新しいビルド システムでは、アセンブリのバージョンを増やしながらソース管理にもチェックインするタスクをどのように達成しますか?
AssemblyInfo ファイルに記述されたソース管理で常に最新バージョンを利用できるようにしたいと考えています。
以下の PowerShell スクリプト (このブログから引用) は、TF_BUILD_SOURCESDIRECTORY ディレクトリにある AssemblyInfo.cs ファイルの AssemblyVersion と AssemblyFileVersion の値を変更します。
自分でテストしないでください。AssemblyInfo.cs をホストするサーバー パスを対象とする変数を追加して、TF_BUILD_SOURCESDIRECTORY をそれに置き換えてみてください。
Param(
[string]$pathToSearch = $env:TF_BUILD_SOURCESDIRECTORY,
[string]$buildNumber = $env:TF_BUILD_BUILDNUMBER,
[string]$searchFilter = "AssemblyInfo.*",
[regex]$pattern = "\d+\.\d+\.\d+\.\d+"
)
try
{
if ($buildNumber -match $pattern -ne $true) {
Write-Host "Could not extract a version from [$buildNumber] using pattern [$pattern]"
exit 1
} else {
$extractedBuildNumber = $Matches[0]
Write-Host "Using version $extractedBuildNumber"
gci -Path $pathToSearch -Filter $searchFilter -Recurse | %{
Write-Host " -> Changing $($_.FullName)"
# remove the read-only bit on the file
sp $_.FullName IsReadOnly $false
# run the regex replace
(gc $_.FullName) | % { $_ -replace $pattern, $extractedBuildNumber } | sc $_.FullName
}
Write-Host "Done!"
}
}
catch {
Write-Host $_
exit 1
}