58

Visual Studio 2008、C# を使用しています。エディット コンティニュ (デバッグ中にコードを編集) を使用しようとすると、次の例外が発生します。

「64 ビット アプリケーションへの変更は許可されていません」

何故ですか?回避策はありますか?

4

8 に答える 8

50

エディット コンティニュは CLR レベルの 64 ビット アプリケーションではサポートされていないため、Visual Studio でそれを実装する方法もありません。

この問題を回避する最も簡単な方法は、アプリケーションのターゲットを x86 チップにすることです。これにより、Wow64 モードで 32 ビット プロセスとして実行されるため、ENC が可能になります。これを行うには、次のようにします。

  1. .EXE アプリケーションを右クリックし、[プロパティ] を選択します。
  2. [ビルド] タブに移動します
  3. プラットフォーム ターゲット コンボ ボックスを x86 に変更します。

ここに画像の説明を入力

于 2009-09-30T15:30:06.177 に答える
6

個人的に、私が実際に望んでいるのは、編集して続行するのではなく、停止して編集することです。

したがって、ツール/オプション/デバッグ/エディット コンティニュをオフにするだけです。

そうすることで、厄介なダイアログ ボックスが、私がそもそも望んでいなかった不足している機能について私を困らせないようにします :-)

于 2013-10-30T17:13:55.670 に答える
4

jcopenha が言ったように、x64 にはまだエディット コンティニュはありません。64 ビット CLR の現在のバージョンではサポートされていません。ただし、回避策があります。

Bug Babble の投稿で見つけることができます。

x86 のターゲット CPU を使用してマネージ アセンブリをコンパイルする必要があります。これにより、64 ビット CLR ではなく 32 ビット CLR が使用されます。

VB プロジェクトの場合、プロジェクトを右クリックし、[プロパティ]、[コンパイル]、[高度なコンパイル オプション]、[ターゲット CPU] の順に移動して、"x86" に設定します。C# プロジェクトの場合、プロジェクトを右クリックし、Properites/Build/Platform Target に移動して、「x86」に設定します。

それが役に立てば幸い。

于 2009-09-30T14:35:35.183 に答える
4

64 ビット コードの「エディット コンティニュ」機能は、Visual Studio 2013 でサポートされます。

詳細はこちら

于 2013-06-28T14:55:59.270 に答える
3

エディット コンティニュ機能は、x64 にはまだ実装されていません。彼らがいつそれを行う予定であるかについての最新情報はまだ聞いていません。

エディット コンティニュが x64 CLR で機能しないのはなぜですか?も参照してください。

于 2009-09-30T14:29:51.483 に答える
0
  1. ターゲット CPU が「任意の CPU」に設定されている場合、32 ビット Windows では 32 ビット アプリケーションとして実行され、64 ビット Windows では 64 ビット アプリケーションとして実行されます。ただし、Visual Studio では、64 ビット アプリケーションの「編集と継続」機能が許可されていません。

  2. 64 ビット マシンで「流暢に」デバッグするには、次のいずれかを実行できます。

    a) 'Target CPU' を 'Any CPU' に設定しますが、'Prefer 32bit' ボックスをチェックします。

    b) または、「ターゲット CPU」を「x86」に設定します

非常に重要: どちらのオプションでも、[最適化を有効にする] ボックスをオフにする必要があります。

于 2016-04-11T00:52:12.213 に答える
0

MS Visual C# Express 2010 でも同じエラー メッセージが表示されました。アプリケーションが x86 プロジェクトとして構成されていることは間違いないので、これは興味深いことでした。

最終的に、.csproj ファイルに次の行がありませんでした。

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
    ...
    <PlatformTarget>x86</PlatformTarget>
    ...
</PropertyGroup>

なぜ見つからなかったのかわかりません... MS Visual C# Express 2010 はバグフリーではないと思います ;)

于 2013-05-06T08:50:32.163 に答える