2012-02-08 5 views
0

私はTFS 2010ビルドで構築したソリューションを持っています。このソリューションとそのビルドには、3つの構成セット(開発、統合、リリース)があります。私はビルドをすべてビルドするように設定しましたが、ほとんどの場合うまく動作します。私が構築するときTFS .csprojファイルから条件付きコンパイルシンボル(DefineConstants)を使用して構築

private const string STR_WS_EndPoint = 
#if INTEGRATION 
     "Integration_WS_EndPoint"; 
#elif DEVELOPMENT 
     "Development_WS_EndPoint"; 
#elif DEBUG 
     "Debug_WS_EndPoint"; 
#else 
     "Release_WS_EndPoint"; 
#endif 

:このソリューションで

が、それはこのように、各構成の異なるWebサービスのURLを持っているために構築されている構成に応じて異なる条件付きコンパイルシンボルを設定し、Silverlightのプロジェクトでは、ありますVisual Studioのこれらの異なる構成では、各構成に適切な文字列が選択されますが、TFSが異なる構成を構築すると、それらはすべて「Release_WS_EndPoint」文字列(ILSpyを使用してチェック)で終了します。これらのコンパイルシンボルでTFSビルドを取得するにはどうすればよいですか? Visual Studioのような.csprojコンパイルシンボルを使用する必要があるので、私は言ったように、これはビルドに "MSBuild Arguments"フィールドを使用することはできません。

答えて

0

ビルド構成によっては、設定ファイルの操作にXmlPreprocess toolを使用しています。複数の環境/サーバーに対して1つのマッピングファイルを使用しています。 Excelでマッピングファイルを編集できます。それは非常に使いやすいです。 アフタービルドステップでXmlPreprocessを呼び出し、環境パラメータとして設定を渡します。

関連する問題