0

コンパイル (またはプロジェクト/ソリューションのビルド/再ビルド) 中に、.NET プロジェクトのアセンブリ バージョンを手動で変更しなくても自動的に変更できるように、Visual Studio 2010 を具体的に設定するにはどうすればよいですか。同じソリューションに Web アプリケーションと複数のクラス ライブラリ プロジェクトがある場合、典型的な企業/組織がこれを行う方法を具体的に教えてください。バージョン管理に Tortoise SVN を使用していて、プロジェクトのバージョンに SVN のバージョンを自動的に反映させたいとしましょう。

4

1 に答える 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 に答える