4

Visual Studio 2010 に C# プロジェクトがあり、ビルド前のイベント コマンド ラインで次のように指定します。

echo "$(Configuration)" - "$(PlatformName)" - "$(Platform)"
exit 1

結果は次のとおりです。

"Debug" - "AnyCPU" - "AnyCPU"

そのウィンドウのマクロ セクションでは、この場合 (スペースあり) のようにPlatformName表示されるべきであることが示されていますが: http://i.imgur.com/xb3Y8.png (MSDN ではhttp: //msdn.microsoft.com/en-us/library/42x5kfw4.aspx )。Any CPU

msbuild /property:Configuration="Debug" /property:Platform="AnyCPU"
1>MyProgram.sln.metaproj : error MSB4126: The specified solution configuration "Debug|AnyCPU" is invalid.

何が起きてる?残念ながら、"AnyCPU"コマンド ラインでは有効なプラットフォームではないため、続行できません。/property:Platform="Any CPU"上記は(スペースを使用して)うまく機能します。

とにかく使用できる別のマクロ、または MSBuild がプラットフォームを受け入れるためのフラグはありますか?

4

1 に答える 1

6

MSBuild バグ 503935 に遭遇したようです:

報告:

msbuild プラットフォーム プロパティは、ソリューションをビルドしているか、プロジェクトをビルドしているかによって、Any CPU の値が異なります。

ソリューションの使用 Platform="Any CPU" - スペース

プロジェクトの使用 Platform="AnyCPU" - スペースなし

応答:

Microsoft によって 2009 年 11 月 2 日午後 7 時 22 分に投稿されました。

フィードバックをお寄せいただきありがとうございます。

残念ながら、ベータ 2 を出荷したばかりなので、この時点で調整を行うにはサイクルが遅すぎます。これらの 2 つを同じにする必要があるのは完全に理にかなっています。両方に一貫して「AnyCPU」を使用する必要があるようです。また、下位互換性があることを確認する必要があるため、これを考慮する必要があります。

次のラウンドでは、解決策を回避したいと考えており、そのサイクル中に修正できる可能性があります。このサイクルでは、このバグを「修正しない」として解決しています。

ありがとう、

チャック・イングランド

Visual Studio プラットフォーム プログラム マネージャー - MSBuild

最終決議:

修正されないため閉鎖

于 2012-09-18T20:01:24.707 に答える