14

私たちのチームでは、開発者全員が Visual Studio 2012 を使用しており、TFS2012 ビルドも使用しています。スペースと管理上の理由から、(多くの) ビルド エージェントには Visual Studio をインストールしません。これは、これまでのところ C# プロジェクト (csproj) で機能しています。

ここで、C++ プロジェクト (vcxproj) のサポートを追加します。これらは開発者のマシンでビルドされますが、ビルド エージェントではビルドされません。次のようになります。 X.vcxproj(31,3): error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

これは、C++ コンパイラとターゲットが VS でのみインストールされるためだと思います。

  1. コンパイラとターゲットだけをチェックインし、common.targets にいくつかのプロパティを設定してそこを指すようにする方法はありますか?
  2. それができない場合、C++ コンパイルをサポートするために各ビルド エージェントにインストールする必要がある最小値は何ですか? 少なくとも私が見つけたのは VS Express でしたが、これはまだ私の好みには多すぎます。
4

2 に答える 2

13

C# の場合は簡単です。C# プログラムをコンパイルする機能はフレームワーク System.CodeDom に備わっているため、.NET をインストールするだけで十分です。C++ ではそうではありません。少なくとも、Windows SDK をインストールする必要があります。半分のギグです。これには、8.0 より前の SDK バージョンの C++ コンパイラが含まれます。

ただし、次に、そのマシンでクラス ライブラリを取得する方法を見つけることに頭を悩ませます。たとえば、ATL と MFC です。それらをコピーすることはできません。ライセンスに違反します。さらに悪いことに、Microsoft は以前のようにビジネスを行っていません。彼らは、VS2012 以降、更新プログラムが数か月で出荷されるラピッド リリース サイクルに切り替えました。これらは無視できる更新ではありません。C++11 を実装するためにかなりの量のチャンクが追加されています。間違いなく、C++ プログラマーが使用したいと思う種類です。

一般に、C++ コンパイラの SDK バージョンは VS バージョンと同期していないだけであり、Windows チームはそれを更新し続ける義務を負いません。ビルド マシンが絶対にやってはいけないことの 1 つは、プログラマーが使用するものとは異なるビルド ツールのセットを実行することです。これにより、開発者が再現できないビルド ブレークが大きな厄介な論点になります。人生を複雑にするのが好きでない限り、メッセージは明らかです。やらないで、VSをインストールしてください。

于 2013-03-14T13:28:57.200 に答える
0

この問題は、以前のTFSバージョンでも発生していました。私の知る限り、唯一の解決策はターゲットをエージェントにコピーすることです。このフォルダのコピーを作成するだけで十分です。

MSBuild\Microsoft\VisualStudio\v11.0\*.*

少なくとも、エージェントにVisual Studioをインストールする必要はありません(セットアッププロジェクトの作成を自動化する場合を除く)。

エラーはここでも説明されています。

于 2013-03-14T13:17:19.713 に答える