DotNet(Core / Standrad)を使用して、ビルド時にプロジェクトバージョンを作成するにはどうすればよいですか?

マークルグルート

.csprojファイルにタグを追加することでプロジェクトのバージョンを設定できますが、パイプライン内でその値をプログラムで変更したいと思います。

私はそれを達成するためにスクリプトを一緒にハッキングしましたが、それはずさんな感じがします。

これはCLIを介して行う方法である必要がありますが、私はそれを見つけられません。

私が見落としているこれに似たコマンドはありますか?

dotnet build -project-version 1.2.3

コマンドが存在しない場合、パイプラインでプロジェクトビルドバージョンを設定するために何をしましたか?

ジョエルフライシュマン

私はパイプラインで以下を使用します。

dotnet build -p:VersionPrefix="$(buildNumber)" -p:VersionSuffix="$(buildPipline)"

そして私のcsprojファイルに私は持っています

 <PropertyGroup>
    ...
    <VersionPrefix>1.0.1</VersionPrefix>
    <VersionSuffix>local</VersionSuffix>
  </PropertyGroup>

コードでバージョン番号を取得するには、次を使用します

public static string Version => System.Reflection.Assembly.GetEntryAssembly().GetCustomAttribute<System.Reflection.AssemblyInformationalVersionAttribute>().InformationalVersion;

Azureパイプラインを使用している場合は、日付と時刻に基づいてバージョンを宣言するPowerShellスクリプトを追加できます。

 Write-Host "Generating Build Number"
$baseDate = [datetime]"01/01/2019"
$currentDate = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId((Get-Date), 'Eastern Standard Time')
$interval = NEW-TIMESPAN –Start $baseDate –End $currentDate
$days = $interval.Days
$hour = $currentDate.ToString("HH")
$minute = $currentDate.ToString("mm")

$version = "1.0.$days.$hour$minute"
$version_npm = "1.$days.$($currentDate.ToString("Hmm"))"
if($currentDate.ToString("HH") -eq "00")
{
    $version_npm = "1.$days.25$($currentDate.ToString("mm"))"
}
Write-Host "Version: $version"
Write-Host "npm Version: $version_npm"

Write-Host "##vso[task.setvariable variable=buildNumber]$version"
Write-Host "##vso[task.setvariable variable=buildNumber_npm]$version_npm"

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ