0

Visual Studio 2010を特別にセットアップして、.NETプロジェクトのアセンブリバージョンをコンパイル時に手動で変更することなく自動的に変更できるようにする方法プロジェクト/ソリューションのビルド/リビルド)。同じソリューションでWebアプリケーションと複数のクラスライブラリプロジェクトがある場合、典型的な会社/組織がこれを行う方法について具体的に記述してください。バージョン管理にTortoise SVNを使用していると仮定し、プロジェクトバージョンにSVNバージョンを自動的に反映させたいとしましょう。Visual Studio 2010セットアップにより、SVNバージョンから.NETプロジェクトアセンブリバージョンが自動的に変更される

+0

可能重複[SVNリビジョンバージョンの.NETアセンブリw/out CC.NET](http://stackoverflow.com/questions/12176/svn-revision-version-in-net-assembly-w-out-cc-net) –

+0

Isn 't i閉じるのではなく、マージするのが一番ですか?私はメタサイトのどこかでそれを読んでいます。 – MacGyver

+0

1.すべての**完全な**答えは、すでに述べた質問に書かれています。 2.私は合併の力を持っていません –

答えて

1

Visual Studioでこれを行う方法がわかりません。

組織にはビルドスクリプトがありますか? 私はPowershellでbuildscriptを維持しています。ここから問題はかなり解決できます。ここで

は、いくつかの例の抜粋です:、その後

$revisionNumber = (svn info $RepositoryPath -r HEAD | select-string '^Revision: (\d+)$').Matches[0].Groups[1].Value 

溶液中のすべてのアセンブリにこのバージョン番号を割り当てるには:

は、Subversionのリビジョン番号を抽出するの

$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; 
    }; 
+0

クルーズコントロールを継続的に使用しています。私はそれが単にmsbuild(標準の.NETコンパイル/ビルドコマンド)を呼び出すと思います。しかし、私はCruise ControlがコードがSVNにコミットされるたびに別のビルドを開始することを知っているので、そのビルド中に行っていることを正確に行うことができます。したがって、リビジョン番号はバージョンの4番目の数字ですか?最初の3つの数字は何を意味しますか? – MacGyver

+1

私はちょうど最初の3つの数字を任意に選んだ。バージョン番号を付けると、重要度の高い数字は技術的な数字よりもマーケティングの意思決定に基づいている傾向があります。 –

+0

私はwww.codeplex.comが最初のバージョンに年を使用しているのを見て、2番目と3番目は最後のマイナーリリースの月と日にちを基準にしています(私は思う)、最後の部分は改訂版でなければなりませんTeam Foundation(またはバージョン管理ツール)から入手できます。 – MacGyver

関連する問題