Visual Studio 2008 でのデバッグ時に「64 ビット アプリケーションへの変更は許可されません」と表示される
-
19-09-2019 - |
質問
Visual Studio 2008、C# を使用しています。編集して続行 (デバッグ中にコードを編集) を使用しようとすると、次の例外が発生します。
「64 ビット アプリケーションへの変更は許可されていません」
何故ですか?回避策はありますか?
解決
エディット コンティニューは 64 ビット アプリケーションでは CLR レベルでサポートされていないため、Visual Studio でエディット コンティニューを実装する方法もありません。
この問題を回避する最も簡単な方法は、アプリケーションのターゲットを x86 チップにすることです。これにより、Wow64 モードで 32 ビット プロセスとして実行され、ENC が可能になります。次のようにすることでこれを行うことができます
- .EXE アプリケーションを右クリックし、「プロパティ」を選択します。
- 「ビルド」タブに移動します
- [プラットフォーム ターゲット] コンボ ボックスを x86 に変更します。
他のヒント
個人的に、私が実際に欲しいのは引き続き編集-と-ない停止と編集されます。
だから私は単に/編集ツール/オプション/デバッグをオフにして続行します。
そうすることで、私は最初の場所にしたくなかった欠落している機能についての私を困らせるからその厄介なダイアログボックス阻害: - )
64 ビット コードの「エディット コンティニュー」機能は、Visual Studio 2013 でサポートされます。
jcopenhaなどは一切編集して、引き続きx64の上ではまだありませんと述べました。 64ビットのCLRの現在のバージョンは、それをサポートしていません。しかし、仕事が周りにあります。
あなたはバグせせらぎポスト。
あなたは、x86のターゲットCPUを使用してマネージアセンブリをコンパイルする必要があります。これは、32ビットのCLRは、64ビットCLRではなく、使用されるようになります。
VBプロジェクトのために、プロジェクトを右クリックし、[プロパティ] /コンパイル/詳細コンパイルオプション/ターゲットCPUに移動しての「x86」に設定します。 C#プロジェクトでは、プロジェクトを右クリックし、[Properites /ビルド/プラットフォームターゲットに移動しての「x86」に設定します。
それがお役に立てば幸いです。
編集と継続機能は、単にまだx64のでは実装されていません。私は、彼らはまだそれを行うことを計画する際に更新を聞いていない。
も参照してください。なぜ編集して、続行しませんx64 CLR上で動作しますか?の
私はMSのVisual C#Expressの2010年の同じエラーメッセージを持っていたことだった面白いけれども、アプリケーションは間違いなくx86のプロジェクトとして構成されていたので!
最後に、それは私の.csprojファイルに欠落している次の行でした
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
...
<PlatformTarget>x86</PlatformTarget>
...
</PropertyGroup>
それが欠けていた理由を私は知らない...私は2010 MSのVisual C#Expressを推測bugfreeではありません。)
ターゲット CPU が「任意の CPU」に設定されている場合、32 ビット Windows では 32 ビット アプリケーションとして実行され、64 ビット Windows では 64 ビット アプリケーションとして実行されます。ただし、Visual Studio では、64 ビット アプリケーションの「編集して続行」機能は許可されていません。
64 ビット マシンで「スムーズに」デバッグするには、次のいずれかを行うことができます。
a) 「ターゲット CPU」を「任意の CPU」に設定しますが、「32 ビットを優先」ボックスをオンにします。
b) または、「ターゲット CPU」を「x86」に設定します。
非常に重要:どちらのオプションでも、「最適化を有効にする」ボックスのチェックを外す必要があります。
残念ながら、編集および64ビットではサポートされていません続行します。 [編集]を使用すると、64ビットアプリケーションをデバッグするときに続行しようとした場合、実際には、次のエラーメッセージが表示されます:「64ビット・アプリケーションへの変更が許可されていません」 多くのユーザーは、Visual Studio 2008でC#やVBプロジェクトを作成する場合、デフォルトでは、このプロジェクトのための「プラットフォーム」が「どれCPU」に設定されていることを認識していなくてもよいです。これは、32ビットオペレーティングシステム上でアプリケーションを実行する場合、アプリケーションが32ビットプロセスとして実行され、同様に、あなたは64ビットオペレーティングシステム上でアプリケーションを実行する場合、アプリケーションが64ビットであることを意味します。 「どれCPU」の結果は、あなたが64ビットオペレーティングシステム上でアプリケーションをデバッグしようとすると、[編集]を使用して、機能を続行することはできませんということです。
ただし、回避策があります。開発中に、あなたはあなたのアプリケーションでも64ビットオペレーティングシステム上で32ビットプロセスとして実行されることを意味し、32ビットへのプロジェクトのためのプラットフォームを設定することができます。これは、基本的には64ビットオペレーティングシステム上で32ビットアプリケーションを実行できることを意味WOW64または「WindowsでのWindows」として知られています。
だから、どのようにあなたは、32ビットへのプロジェクトのためのプラットフォームを設定するのですか?さて、あなたは、Visual Studio Configuration Managerを使用して32ビットのプラットフォームを作成する必要があります。ここでは短いチュートリアルではあります。
まず、ビルドから「構成マネージャ」ダイアログを開く - > [構成マネージャ。構成マネージャ]ダイアログボックスを以下に示します。