TeamBuild-ビルド時にコンパイルするプロジェクトを選択することは可能ですか?

StackOverflow https://stackoverflow.com/questions/806540

  •  03-07-2019
  •  | 
  •  

質問

TeamFoundationを使用してビルドプロセスを自動化しているので、ビルドの.projファイルに従ってコンパイルするプロジェクトを選択する必要があります。完全なシナリオは次のとおりです。

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

私の目標は、ビルドタイプごとに1つのWebサイトのみをコンパイルすることです。つまり、BuildType1でWebサイト1をコンパイルし、BuildType2でWebサイト2をコンパイルすることです。

「変更」することは可能です;コンパイルするウェブサイトのいずれかのマークを外すことができるような方法で.sln?これは自動化されたプロセスであるため、1つのWebサイトのみをコンパイルするたびに.slnを手動で変更することはできません。

役に立ちましたか?

解決

TFSBuild.projファイルのSolutionToBuildセクションをご覧ください。

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

他のヒント

ビルドを制御できる主な方法は2つあります:

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top