ターゲットプラットフォームが明示的に設定されたときに構築されていない新しいプロジェクト
-
04-10-2019 - |
質問
1つのプロジェクトで新しいソリューションを作成し、ターゲットプラットフォームを「Any CPU」から「X86」に変更します。追加されたこの新しいプロジェクトの後、デフォルトでは構築されず、ターゲットプラットフォームはグローバルな設定に従いません。なぜ?!
追加されたConfiguration Managerを見る新しいプロジェクトは「ビルド」にチェックされず、Global Set x86の代わりにターゲットプラットフォーム「任意のCPU」を取得します。なぜこうなった?グローバルに設定および定義されたX86ターゲットプラットフォームを取得するための新しいプロジェクトも期待しています。
- グローバルプラットフォームを任意のCPUに戻し、次にx86に再度切り替えます。変化なし..
- 新しいプロジェクトのプラットフォームを明示的に選択します。 x86はリストには利用できません、そして私が言うとき
<New..>
それを追加してみてください私は許可されていません」..同じ名前のソリューションプラットフォームが既に存在しています。". - 新しいプロジェクトのビルドプロパティでは、構成セクションのプラットフォームを変更することはできませんが、一般セクションの「プラットフォームターゲット」をX86に設定できます。ただし、これが実際に違いを生むかどうかは明らかではなく、後でターゲットプラットフォームをグローバルに変更しても応答しません。
当初、これは私のソリューションをVS2008からVS2010に変換することからの問題だと思っていましたが、問題は両方の場所を適用します。 IE VS2008でソリューションを作成し、VS2008にとどまるだけで、まだ問題が発生します。
解決
はい、これはVS2010の非常に壊れた変化であり、ちょっとした混乱です。 2010年に作成された新しいソリューションには、「デバッグ| x86」と「リリース| x86」という2つの構成があります。これは、以前のバージョン「Debug | Any CPU」と「リリース| Any CPU」によって作成されたソリューションとは異なり、デフォルトでした。
このVS2010作成されたソリューションに以前のバージョンで作成された既存のプロジェクトを追加すると、厄介な混合バッグが表示されます。プラットフォームのコンボが示すようになりました 三 オプション、「x86」、「任意のCPU」、「混合プラットフォーム」。後者はすべてのプロジェクトを構築します。何も 非常に 混乱するのは、構成名が実際にプラットフォームターゲット設定に直接影響しないことです。
修正可能で、.slnおよび.vcprojファイルの「任意のCPU」が「x86」をテキストエディターで検索して置き換えることができます。おそらく、最良のアプローチは、トラブルから逃れ、VS2010が新しいソリューションを作成する代わりにVS2008ソリューションを変換させることです。不快な問題。
他のヒント
ステップ:
- プロジェクトを閉じます
- メモ帳でcsprojファイルを開きます
- すべてのx86をx64に置き換え、保存します
- プロジェクトを再開すると機能します。