4

1つのプロジェクトで新しいソリューションを作成し、ターゲットプラットフォームを「AnyCPU」から「x86」に変更します。この後に追加された新しいプロジェクトはデフォルトでビルドされず、それらのターゲットプラットフォームはグローバル設定に従いません。なぜ?!

構成マネージャーを見ると、追加された新しいプロジェクトは「ビルド」にチェックされておらず、グローバルに設定されたx86ではなくターゲットプラットフォーム「AnyCPU」を取得します。なぜこうなった?新しいプロジェクトでも、グローバルに設定および定義されたx86ターゲットプラットフォームを取得することを期待しています。私が試したいくつかのこと:

  • グローバルプラットフォームを任意のCPUに戻し、次にx86に戻します。変化なし..
  • 新しいプロジェクト用にプラットフォームを明示的に選択します。x86はリストにありません。私が言っ<New..>て追加しようとすると、「..同じ名前のソリューションプラットフォームがすでに存在します。」として許可されません。
  • 新しいプロジェクトのビルドプロパティで、[構成]セクションでプラットフォームを変更することはできませんが、[一般]セクションで[プラットフォームターゲット]をx86に設定できます。ただし、これが実際に違いを生むかどうかは不明であり、後でターゲットプラットフォームをグローバルに変更しても応答しません。

当初、これはソリューションをVS2008からVS2010に変換する際の問題だと思っていましたが、問題は両方の場所に当てはまります。つまり、VS2008でソリューションを作成し、VS2008にとどまると、まだ問題が発生します。

4

2 に答える 2

4

はい、これはVS2010でのほぼ破壊的な変更であり、少し混乱しています。2010年に作成された新しいソリューションには、「Debug|x86」と「Release|x86」の2つの構成があります。以前のバージョンで作成されたソリューションとは異なり、「Debug|AnyCPU」と「Release|AnyCPU」がデフォルトでした。

次に、以前のバージョンで作成された既存のプロジェクトをこのVS2010で作成されたソリューションに追加すると、厄介な混合バッグが発生します。プラットフォームコンボには、「x86」、「任意のCPU」、「混合プラットフォーム」の3つのオプションが表示されます。後者はすべてのプロジェクトを構築します。また、非常に紛らわしいのは、構成名が実際にはプラットフォームターゲットの設定に直接影響しないことです。

修正可能です。テキストエディタを使用して、.slnファイルと.vcprojファイルの「AnyCPU」を「x86」に検索して置き換えることができます。おそらく最善のアプローチは、問題を回避し、新しいソリューションを作成するのではなく、VS2010にVS2008ソリューションを変換させることです。厄介な問題。

于 2010-05-07T12:19:41.147 に答える
1

手順:

  • プロジェクトを閉じる
  • メモ帳でcsprojファイルを開きます
  • すべてのx86をx64に置き換え、保存します
  • プロジェクトを再度開くと、機能します。
于 2012-01-18T02:13:43.683 に答える