2009-04-30 17 views
1

TeamFoundationを使用してビルドプロセスを自動化しています。ビルドの.projファイルに従ってコンパイルするプロジェクトを選択する必要があります。TeamBuild - ビルド時にどのプロジェクトをコンパイルするか選択できますか?

2つのWebサイトを含むソリューションをコンパイルするために.slnファイルを使用する.projファイルがあります。 .slnファイルは、リリース構成で両方のWebサイトをコンパイルするように構成されています。

私の目標は、ビルドの種類ごとに1つだけのウェブサイトをコンパイルすることで、つまり私はBuildType1が2

はですウェブサイトなどでの.slnを「修正」することが可能であるにコンパイルするウェブサイト1とBuildType2をコンパイルしたいです私はウェブサイトの1つをマークしてコンパイルすることができますか?自動化されたプロセスなので、1つのWebサイトだけをコンパイルするたびに.slnを手動で変更することはできません。

答えて

1

TFSBuild.projファイルのSolutionToBuildセクションを参照してください。

<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution.sln"> 
    <Targets>MyCustomTarget1;MyCustomTarget2</Targets> 
    <Properties> Configuration=Release</Properties> 
</SolutionToBuild> 
+0

返信いただきありがとうございます。 私があなたが言ったことを見てみましょう私がコンパイルしたくないそれぞれのプロジェクトにカスタムターゲットを作成すると、それらのターゲットはデフォルトのターゲットを上書きします。単にそれらを空にすると、プロジェクトのコンパイルはスキップされます? もしそうなら、ターゲットとプロジェクトをどのようにリンクできますか?つまり、自分のソリューションに50のプロジェクトがあり、そのうちの1つのコンパイルをスキップしたいのですが、各プロジェクトの.csprojを変更できないため、TFSBUILD.projファイルのみを変更できますか? –

+0

解決策レベルで新しい設定を作成することもできます(IDEはプロジェクトの設定を作成するかどうかを尋ねます)。注:.projの構成部分のみを変更するため、残りはクライアント側で簡単にテストできます。 – leppie

+0

ええと、私はそれを得ました。 ソリューションの必要な変更は開発チームに依頼するだけの簡単なものだと私は思っています。 Thanks leppie! –

1

ビルドを制御することができ、主に二つの方法があります。

  • は、あなたのチームエクスプローラで別のビルドの種類を作成します。これは独自の完全に独立したTFSBuild.projファイルを持っているので、まったく異なる方法で同じコードベースを構築できます。 SolutionToBuildを設定して、必要なものだけを構築します(受け入れられた回答に記載されています)。

  • 1つのビルドタイプを使用し、ビルドタイプを制御し、ビルドタイプを制御するプロパティを使用するようにTFSBuild.projを設定します(これにより、MSBuildスクリプトの詳細を理解する必要があります)。 [キューの新規作成]ダイアログでは、/ p:コマンドラインフラグを使用して、必要に応じてプロパティを設定できます。例えば"/ p:IncrementalGet = false; IncrementalBuild = false; ForceGet = true"を指定すると、通常のインクリメンタルビルドで強制的に完全な再構築が行われます。これは、occasoinalの状況には便利ですが、毎回手作業でパラメータを設定する必要があるので、日々のビルドには適していません。

関連する問題