2011-08-17 10 views
2

私には、リリース可能な製品を表すソリューションがあり、製品固有のプロジェクトと組織全体で共有されている他のプロジェクトの両方が含まれています。リリースされたプロジェクトのバージョン番号をスタンプする最善の方法は何ですか?私の現在のアイデアは:ソリューションのバージョンを作成

  • サービスプロジェクト(これはWindowsサービスである実際の実行可能ファイルを含むプロジェクトです)にアセンブリバージョンを設定します。しかし、これは基本的にコアプロジェクトのロジックのフロントエンドにすぎないので、ちょっと奇妙に思えます。
  • コアプロジェクトのバージョンをバージョンアップしてください。これがもう少し奇妙なことは、将来のバージョンで崩壊する可能性があるからです。バージョン番号が矛盾しているのが見つかります
  • Wixインストーラプロジェクトでバージョン番号を設定します。いいですが、それは自動化できますか?

私は、これらの場所のすべてで同じバージョン番号を適用する方法を非常に気に入っていますか、これを行う良い方法がありますか?

答えて

3

アイデアが共有GlobalAssemblyInfo.csファイルを作成することで、バージョン管理されなければならない各プロジェクトに外部リンクとしてそれを含め、この方法であなたは1つの場所でバージョンを変更することができますし、すべてのプロジェクトがComplie

GlobalAssemblyInfo.cs: 

[assembly: AssemblyVersion("0.0.0.1")] 
[assembly: AssemblyFileVersion("0.0.0.1")] 
ながら、それを拾います

更新csprojファイルに一度共有含めるためにアセンブリ情報:

<Compile Include="$(SolutionPath)\GlobalAssemblyInfo.cs"> 
     <Link>Properties\GlobalAssemblyInfo.cs</Link> 
</Compile> 
0

これを処理する一般的な方法は、AssemblyInfo.csからバージョン関連の属性を持つファイルを作成し、ルート・ソリューションFOにドロップすることですlder。共有リンクを使用して個々のプロジェクトで参照します。

ウェブ上には多くの例がありますが、参考になるものはhttp://blogs.msdn.com/b/jjameson/archive/2009/04/03/shared-assembly-info-in-visual-studio-projects.aspxです。

私はかなり長い間WiXを使用していませんが、パッケージを生成するためにWiXユーティリティを介して実行する前に、バージョン番号をXMLに挿入することができます。正しく覚えていれば、WiXはコマンドラインで渡すことができる変数をサポートしています。それ以外の場合は、ソースXMLに埋め込んだマジック文字列を自動置換することができます。最初の選択肢はより保守的です。

関連する問題