コンパイル (またはプロジェクト/ソリューションのビルド/再ビルド) 中に、.NET プロジェクトのアセンブリ バージョンを手動で変更しなくても自動的に変更できるように、Visual Studio 2010 を具体的に設定するにはどうすればよいですか。同じソリューションに Web アプリケーションと複数のクラス ライブラリ プロジェクトがある場合、典型的な企業/組織がこれを行う方法を具体的に教えてください。バージョン管理に Tortoise SVN を使用していて、プロジェクトのバージョンに SVN のバージョンを自動的に反映させたいとしましょう。
質問する
709 次
1 に答える
1
Visual Studio を介してこれを行う方法を知りません。
あなたの組織にはビルド スクリプトがありますか? 私はPowershellでビルドスクリプトを維持していますが、ここから問題はかなり解決できます.
スニペットの例を次に示します。
サブバージョンのリビジョン番号を抽出するには:
$revisionNumber = (svn info $RepositoryPath -r HEAD | select-string '^Revision: (\d+)$').Matches[0].Groups[1].Value
次に、このバージョン番号をソリューション内のすべてのアセンブリに割り当てるには:
$targetAssemblyVersion="1.0.3.{0}" -f $revisionNumber
$assemblyDeclaration = "[assembly: AssemblyFileVersion(`"{0}`")]" -f $targetAssemblyVersion;
get-childitem -recurse -filter "AssemblyInfo.cs" |
% {
$sb = new-object System.Text.StringBuilder;
$_ | get-content |
% {
$replacedString = ($_ -replace '^\[assembly: AssemblyFileVersion\("[\d\.]+"\)\]',$assemblyDeclaration);
$dummy = ($sb.AppendLine($replacedString));
};
$sb.ToString() | out-file $_.FullName;
};
于 2012-03-14T04:09:14.363 に答える