2009-07-19 8 views
2

私の製品用のMSBuildスクリプトを作成し始めています。私はジレンマに遭遇しました。MSBuildのプロジェクトへの分割

コードは約25のプロジェクトに分かれており、一部は難読化を必要とし、一部は厳密な署名が必要です。他の人は1つのファイルにリンクする必要があります。

これらのプロジェクトは、3つの設定と3つの設定が必要です。

手元の質問は次のとおりです。MSBuildスクリプトを最も分かりやすくするにはどうすればよいですか?

製品ごとにスクリプトを作成しますか?プロジェクトごとにスクリプトを作成しますか?ビルド用のスクリプトは1つ、難読化用のスクリプトは1つありますか?

答えて

4

これは、製品ごとにスクリプトを用意することをお勧めします。 ダブライズを最小化するには、再利用可能な「サブスクリプト」を作成し、メインスクリプトにインポートします(これはImportディレクティブで行うことができます)。

<Import Project="..\Steps\Step1.proj" /> 
0

製品ごとのスクリプトは、方法のように聞こえます。一般的なビルド手順をインポートするには、いくつの共有スクリプトまたは基本スクリプトも用意してください。

<Import Project="..\Shared\Base.proj" /> 

あなたもを利用する場合がありますもう一つは、ターゲットとプロパティをオーバーライドです:同様Mike Chaliyはすでにあなたは、あなたの製品のビルドスクリプトでImportを使用することができます言及しました。 .Netクラスの仮想メソッドのオーバーライドに似ています。詳細は、documentationおよびMSBuild Team Blogを参照してください。私は、組み込みのスクリプトをデフォルトに設定し、ビルドの動作をカスタマイズするために、製品のビルドスクリプトで必要に応じてそれらをオーバーライドすることで、これを非常に頻繁に利用していることを知っています。例えば、ビルドの前に必要なファイルを生成することが多いため、これらのターゲットをBuildDependsOnプロパティグループにフックします。このようにして私が生成したファイルは、IDEからF5を実行するたびに生成されます。コマンドラインからビルドターゲットを呼び出すか、そうでなければプロジェクトまたはソリューションをビルドします。明らかに、ビルドステップが長く実行されたり、特別な状況(ビルドインストーラーなど)で実行される必要がある場合は、何が入ってくるかを気にする必要があります。

関連する問題