0

x64 マシン上に構築する AnyCPU に組み込まれたソリューションがあります。これには、Silverlight SDK (x86 のみを対象とする) を参照するいくつかのプロジェクトが含まれています。Visual Studio 2010 でソリューションをビルドすると、すべて正常にビルドされます。

ビルドを自動化しようとしていますが、そのソリューション ファイルで msbuild を起動すると、Silverlight SDK に依存するプロジェクトは両方ともビルドに失敗しますが、残りの 50 ほどのプロジェクトは正常にビルドされます。devenv.exe を呼び出してソリューションをビルドすると、ソリューション全体が正常にビルドされます (予想どおり)。

これに対処するために何らかのビルド ファイルを作成できると思いますが、既存のソリューション ファイルとは別に別のビルド ファイルを維持する必要はありません。個別のビルド ファイルを使用せずに、プロジェクトごとに "正しい" 環境をビルドするように msbuild に指示する方法はありますか?

そうでない場合、msbuild ビルド ファイルは基本的に単なる .proj ファイルであることがわかります。MSBuild リファレンスよりも構成方法に関するより良いリファレンスはありますか、それとも本当に最も愚かな開始点ですか?

4

1 に答える 1

4

表示されている正確なエラーの詳細がなければ、ビルド サーバーで 64 ビット バージョンの msbuild が実行されているため、この問題が発生していると推測されます。Visual Studio 2010 は 32 ビットであるため、この問題は発生しません。

チーム ビルドで 32 ビットの msbuild を使用するには、ビルド構成の [詳細] の下にある [プロセス] タブで、[MSBuild プラットフォーム] 設定を X86 に設定します。

他のプロジェクトは引き続き AnyCPU をターゲットにすることができ、x64 をターゲットにすることもできますが、それが必要であることがわかっていない限り、それはお勧めできず、正常にコンパイルされます。

参考画像はこちら

詳細については、この投稿の下部にあるこちらを参照してください。

お役に立てれば。

于 2012-11-01T01:44:18.243 に答える