編集して続行:「次の場合は変更できません...」


108

クリーンなWinFormsプロジェクトを作成しても、エディットコンティニュは機能せず、エラーが発生します。

デバッガーが既に実行中のプロセスにアタッチされている場合、またはデバッグ中のコードがビルド時または実行時に最適化されている場合、変更は許可されません。

  1. [編集して続行]オプションは、[ツール]→[オプション]→[デバッグ]でチェックされています。
  2. 最適化が有効になっていません。
  3. 管理されたプロファイラーが設定されていないようです。
  4. デバッグモードで実行しています
  5. x64 CPUとWindows XP 32ビットで実行していますが、プラットフォームターゲットをAnyCpuではなくx86に設定しても効果がありません。
  6. Visual Studioのインストールを修復しても効果はありません。

この記事はMSDN Webサイトにもありました。

サポートされていないシナリオ

エディットコンティニュは、次のデバッグシナリオでは使用できません。

  • Windows 98でのデバッグ。

  • 混合モード(ネイティブ/管理)デバッグ。

  • SQLデバッグ。

  • ワトソン博士のダンプのデバッグ。

  • 未処理の例外の後のコードの編集、「未処理の例外でコールスタックを巻き戻す」オプションが選択されていない場合。

  • 組み込みランタイムアプリケーションのデバッグ。

  • [デバッグ]メニューの[開始]でアプリケーションを実行するのではなく、[接続先]でアプリケーションをデバッグします。

  • 最適化されたコードのデバッグ。

  • ターゲットが64ビットアプリケーションである場合のマネージコードのデバッグ。エディットコンティニューを使用する場合は、ターゲットをx86に設定する必要があります。(プロジェクトのプロパティ、[コンパイル]タブ、高度なコンパイラ設定。)

  • ビルドエラーのために新しいバージョンのビルドが失敗した後、古いバージョンのコードをデバッグします。

しかし、私はこのリストのすべての項目に「いいえ」と答えることができます。

以前は機能していましたが、数日前に機能しなくなりました。原因が何であるかはわかりません。


2
リリースモードで実行していますか?X64で実行していますか?
サムサフラン

E&Cしようとしているメソッドは本当に短いですか?おそらくインライン化されました(デバッグではインライン化は発生しないと思いますが)
Sam Saffron

非常に短いか非常に長い方法では機能しません。
ナイトコーダー、

修復インストールはもう試しましたか?
リチャードアンソニーハイン

3
E&Cはかなり複雑な機能であることを付け加えておきます。デバッガーのテストマトリックスは膨大であり、E&Cをあらゆる組み合わせで機能させることは非常に困難です。しかし、これも非常に重要な機能であるため、出荷を確実にするために多くの制限を設けました。私たちがそれに加えた意図的な制約の範囲内で、これは出荷された最高品質の機能の1つです。
Jay Bazuzi

回答:


21

ようやく問題を解決しました:Gallioをアンインストールします

Gallioにはかなりのラフエッジがあるようですが、MbUnit 3.0を使用せずにMbUnit 2.0フレームワークを使用して、インストーラー(ビジュアルスタジオプラグインもインストール済み)からインストールせずに実行しているgallioランナーを使用することをお勧めします。

ちなみに、Gallioプラグインを「無効化」した後でも問題が発生しました。アンインストールだけが問題を解決しました。

PS。ナイトコーダーによる編集:
私の場合、TypeMock Isolator(モックフレームワーク)を無効にすると、ようやく助けられました!編集と続行が機能するようになりました!!!

TypeMockサポートからの回答は次のとおりです。

エディットコンティニューの問題をさらに検討し、Microsoftと話し合ったところ、Isolatorでは解決できないという結論に達しました。アイソレーターはCLRプロファイラーを実装しており、私たちの調査によると、CLRプロファイラーを有効にしてアタッチすると、編集と続行は自動的に無効になります。申し訳ありませんが、これはバグではなく、Isolatorの制限と見なされています。


69

その他の適用可能なソリューション

以下は、編集&続行をすばやく修正しようとしている場合に試してみられる可能性のある解決策の不完全で順序付けられていないリストです。

  • デバッグモードになっていることを確認してください
  • 混合モードのプロセスを起動していないことを確認してください
  • CPUターゲットをAnyCPU ではなくx86に設定してみてください(x64マシン上)
  • プロジェクトのプロパティ->デバッグで、デバッグモードの [ コード最適化]チェックボックスをオフにします。
  • チェックを外し最適化を有効高度なコンパイラの設定
  • (ASP.NET)ナイトコーダーの答えがそうであるかどうかを確認します
  • (ASP.NET)該当する場合は、この回答を(matrixuglyで)確認してください
  • (ASP.NET)[ Web ]タブ(vs2010)で[ 編集して続行 ]が有効になっていることを確認します
  • (ASP.NET)に移動し、プロパティ>ウェブ>サーバー、およびことを確認して有効にして、継続の下でチェックされている使用のVisual Studio開発サーバー
  • (ASP.NET WebAPI)編集を試みる前に、ブレークポイントを使用してコントローラーのメソッドで停止していることを確認してください。
  • (vs2017)[ツール]> [オプション]> [デバッグ]に移動し、[編集して続行] をオフ(選択解除)にします。これは実際には「従来の」アドバイスの反対です(この投稿の他のいくつかのポイントを参照してください)。実行中のプログラムに実際に変更を加えることはできません(つまり、行ったコード変更をホットスワップしません)-コードを編集するだけです(つまり、煩わしいメッセージを防ぎ、エディターを「ロック」します。 )。
  • [ツール]> [オプション]> [デバッグ]> [全般]に移動し、[元のバージョンと完全に一致するソースファイルを要求する]がオフになっていること確認します
  • [Windowsデバッグヒープアロケーターを有効にする(ネイティブのみ)]をオンにします[VS Community 2017]
  • Microsoft Fakesを使用していますか?編集と続行を禁止します。
  • すべて殺す* .vshost.exe選択することで、インスタンスをプロセスの終了ツリータスクマネージャ。VSは正しいインスタンスを再生成します。
  • Debug-> Delete All Breakpointsですべてのブレークポイントを削除します
  • [有効化して続行 ]は、[ツール]> [オプション ] > [デバッグ ]メニューと[プロジェクト設定]の両方にあります。両方の場所を確認してください。エディットコンティニューは、拡張Intellitrace設定ではサポートされていません。
  • 必ずデバッグ情報プロジェクトのプロパティ]> [ビルド]> [詳細]> [出力]> [デバッグ情報がに設定されている
  • 一部のプラグインが干渉している可能性があります。無効化/アンインストールしてから、他のソリューションを再試行して確認してください。
  • 注意を十分に払っていない場合、これを修正しようとしたときに発生するエラーは、診断しやすい別の何かに変わる可能性があります。たとえば、ラムダ式を含むメソッドは編集と続行をサポートできません。
  • システム変数COR_ENABLE_PROFILINGがに設定されていないことを確認し1ます。一部のプロファイラーは、インストール時にこれを設定し、アンインストール後もそのままにします。コマンドプロンプトを開いて入力setし、システムが影響を受けていることをすばやく確認します。その場合は、変数を削除するか、次のように設定し0ます。

    • Windows 8以降では、システム(コントロールパネル)を検索します
    • [ システム詳細設定]リンクをクリックします
    • [ 環境変数]をクリックします。
    • 削除する COR_ENABLE_PROFILING
  • サポートされていないシナリオ(質問で報告されている)とサポートされいない編集に注意してください。


*「あなた」とは、解決策を見つけるためにキーボードで頭を叩いているページの訪問者を意味します。


ここに記載されていない場合は、この回答を編集して回避策を追加してください。


5
それはCOR_ENABLE_PROFILINGでした...なぜ設定されたのかはわかりません。ありがとう。キーボードで頭を叩くのをやめる。
Florian Lagg

2
私は働いた以外はすべて試しました。次に、ブレークモード(デバッグ->すべてをブレーク)またはブレークポイントにいる必要があることに気付きました。これをリストに追加してください。msdn.microsoft.com/en-us/library/7932e88z.aspx
Niloofar 2017年

1
4行目「プロジェクトのプロパティ
Aljohn Yamaro

2
私のためにそれを解決した一つのことは、ここでは言及されていない:私は持っていたDISこと(チェックを外します)[ツール]> [オプション]> [デバッグの下の「編集を有効にし続ける」オプションを選択します。これはあなたが直感的に考えるものとは正反対ですが、これが私のためにそれを修正したものです(つまり、その煩わしいメッセージを防ぎ、コードを編集させます)。
レオ

1
@leo自由に編集できるコミュニティwikiです。「編集」ボタンは機能しませんか?それをするのに十分な評判があると思います。Ps。分散が少なくなるように、回答に参照を追加しました。
beppe9000

23

ASP.NETアプリケーションをデバッグする場合は、[プロパティ]> [Web]> [サーバー]に移動し、[Visual Studio開発サーバーの使用]で[有効にして続行]がオンになっていることを確認します。


3
また、デバッグ中に[一時停止]を押す必要があります。その後、コードを編集できます
Alexey Obukhov

ローカルiisを使用している場合、「有効にして続行」することはできません
Khoshtarkib

11

私も同じ問題を抱えていました。VS 2008を再インストールしましたが、問題は解消しませんでした。しかし、すべてのブレークポイントを削除すると、機能し始めました。

Debug->Delete All Breakpoints

コードにブレークポイントが含まれているaspxページを削除してから、同じ名前で別のページを作成したことが原因であると思います。これはおそらくVS 2008を混乱させました。


5

チェックすることのカップル

  • コンパイルがデバッグ対リリースに設定されていることを確認してください
  • 混合モードのプロセスを起動していないことを確認してください
  • 64ビットマシンの場合CPUターゲットをAnyCPUではなくx86に設定してください。

編集

これは重要ではないと思いますが、ターゲットプラットフォームでホスティングプロセスが有効になっていることを確認してください。おそらく役に立たないでしょう。

新しいプロジェクトを再現すると、さらに微妙なものになる可能性があります。以下を試してみます。

  • バックアップHKCU:\ Software \ Wow6432Node \ VisualStudio \ 9.0(おそらく名前を変更するだけ)
  • 同じキーを削除
  • 再現を再試行してください

2
混合モードプロセスとは何ですか?私も新しいwinformsプロジェクトを試しました。
ナイトコーダー、2009年

私はHKCU:\ Software \ Wow6432Node \ノードを持っていません
ナイトコーダー'06 /

@nightcoderは、HKCU:\ Software \ Microsoft \ VisualStudio \ 9.0
JaredPar

5

上記の解決策のどれも私にはうまくいきませんでした(64xマシンで実行)。

最後に'advanced compiler settings'、「UNCHECKED 'enable optimizations」をクリックし、デバッグ中にコードをステップ実行して編集できます。


2
これはVisual Basicのみのようです:msdn.microsoft.com/en-us/library/07bysfz2%28v=vs.100%29.aspx
Marcel

私のために働く!VS2013、VB.Net、フレーム3.5
MiBol

1
そして、これらの設定はどこにありますか?
vapcguy

5

「エディットコンティニュー」を有効にすると、ブレークモードの場合にのみコードを編集できます。たとえば、例外によって実行を一時停止したり、ブレークポイントにヒットしたりすることによってコードを編集できます。

これは、実行が一時停止されていないときはコードを編集できないことを意味します!(ASP.NET)Webプロジェクトのデバッグに関しては、リクエスト間で変更を加えたい場合が多いため、これは非常に直感的ではありません。現時点では、(おそらく)デバッグは実行されていませんが、一時停止されていません!
これを解決するには、[すべて解除]をクリックします(またはCtrl+ Alt+を押しBreakます)。または、どこかにブレークポイントを設定します(例:Page_Load、それがブレークポイントにヒットしたときに、その実行が一時停止してページをリロードイベント)、そして今、あなたは、コードを編集することができます。.csファイル内のコードでも。


4

私には、理解できない理由で、「コンパイラの詳細設定」の「デバッグ情報を生成」の設定が「完全」ではなく「pdbのみ」に設定されていました。

デフォルトでは、このパラメーターは常に「フル」に設定されていますが、謎のポルターガイストが昨夜このパラメーターを変更しました。:)

PS Visual Studio 2010でVisual Basic .Netにいます


4

ASP.NETアプリに関する懸念がある場合は、Webタブ(vs2010)で編集を続行し、有効にしてください。以前のバージョンでは、ASP.NETデバッグ用の個別の設定もありました。

よろしく、

アダム。


4

プロジェクトのプロパティの下で、ビルドとデバッグのタブがデバッグに設定されていて、他のすべての設定が正しいにもかかわらず、メッセージが表示されますが、ビルドメニューでさらに掘り下げた後、構成マネージャーを選択し、デバッグが選択されていることを確認します2か所にもあります。図に行く...デバッグを設定するために必要な異なる場所はいくつありますか?????? プロジェクト-構成をデバッグに設定してから、ビルド-マネージャーで変更されていないので、プロジェクト構成も同じ設定に変更しました-再びマイクロソフトの問題のようです...


4

この問題はIntellitrace設定が原因です

Intellitraceが有効になっている場合は、Intellitraceイベントのみがチェックされていることを確認してください

それ以外の場合は、編集を続行できません。

Intellitraceオプションをクリックすると、警告が表示されます。


これは私にとって問題です!
beppe9000 14

Visual Studio Toolsで「Intellitrace」のすべてのオプションを検索しましたが、VS Community 2017にはそのようなオプションはありません。ここでもう少し詳しく説明します。
vapcguy

4

次の撮影は、VS2010の使用に役立ちました。

[ツール]、[オプション]、[デバッグ]、[全般]に移動し、[元のバージョンと完全に一致するようにソースファイルを要求する]がオフになっていることを確認します。


3

これは、デバッガーがブレークポイントに到達していないか、Break All(一時停止)に到達していない場合に発生します。それはそんなに簡単なことではありませんか?


デバッガーがブレークポイントに到達し、コードの何かを変更しようとしたときに発生します。
ナイトコーダー、2009年

3

このエラーは、考えられる原因は次のとおりです。「デバッグ中のコードはビルド時または実行時に最適化されました」。[プロジェクトプロパティ]-> [デバッグ]に移動し、[デバッグモード]の[コードの最適化]ボックスをオフにします。


3

Microsoft Visual Studio 2008でこの問題が発生しましたが、解決策は簡単です。プロジェクトを実行するときは、「リリース」ではなく「デバッグ」モードに設定してください。別の人の解決策が役立つ場合があります。


2

新しいプロジェクトを作成すると、デバッグ中の編集が機能しません。新しいWebサイトを作成した場合、デバッグ中に編集が期待どおりに機能します。



1

VS2010の使用に役立つと思われるいくつかのこと:

  • [ツール]、[オプション]、[デバッグ]、[全般]に移動し、[元のバージョンと完全に一致するようにソースファイルを要求する]がオフになっていることを確認します。
  • 複数の.vshost.exeインスタンスは、たとえば、停止したプロセスからVSデバッガーをデタッチすることで残されます。これは、ブレークポイントとコンパイルにも干渉します。タスクマネージャーの[プロセス]タブを使用して、各インスタンスを右クリックし、[プロセスツリーの終了]を選択して、.vshost.exeのすべてのインスタンスを強制終了します。VSは新しいインスタンスを作成します。

1

使用しなかったため、プロジェクトからデータセットを削除しました。その後、デバッグ時にプログラムを変更できます。


1

私は他のすべての回答で言及されているすべての変更を行いましたが、どれもうまくいきませんでした。私は何を学びましたか?[有効化して続行 ]は、[ツール]> [オプション]> [デバッグ]メニューとプロジェクト設定の両方にあります。両方をチェックした後、有効化と続行が機能しました。


3
どのプロジェクト設定?あいまいすぎます
Adaptabi '10

@Adaptabiつまり、プロジェクト名を右クリックして[プロパティ]をクリックし、(Webプロジェクトの場合は)[Web]をクリックすると、「編集して続行する」がオンになっていることを確認するチェックボックスがあります。
vapcguy

1

今日、これに遭遇しました-デバッグ情報をpdb-only(または、想像していません)に設定すると、編集および続行が機能しなくなることがわかりました。

まず、デバッグ情報が「完全」に設定されていることを確認してください。

プロジェクトプロパティ>ビルド>詳細設定>出力>デバッグ情報


1

illogicのようですが、編集を無効にしてVS 2017オプションから続行する唯一の方法でした...その後、AspNetの編集と続行が機能し始めました...


丁度!直感に反しますが、私にとってもうまくいったのは、「編集して続行」を無効にすることです。行った変更は「ホットスワップ」されませんが、少なくともコードを編集するだけで、アプリを再起動すると有効になります。
レオ

1

私のために働いたのは、「管理された互換モードを使用する」のチェックを外していた

ツール->オプション->デバッグ

TBN:[元のバージョンと完全に一致するようにソースファイルを要求する]をオンまたはオフにしても、E&Cには影響しないようです。

これがお役に立てば幸いです。


1

編集を有効にして、作業のみを実行し、IIS Expressを実行します。ローカルISSまたは外部ホストで作業しないでください。


1

VS 2019を16.4.3にアップグレードして以来、私はこの厄介な問題に直面し、多くの頭痛を引き起こしました。
最後に私はこの方法で問題を解決しました:

1.デバッグを停止します
2.「ソリューションエクスプローラー」からソリューションを選択します
3. プロパティウィンドウで「アクティブ構成」プロパティを「リリース|任意のCPU」から「デバッグ|任意のCPU」に変更します 4 [デバッグ]> [オプション]> [全般]で、[ 編集して続行]チェックボックスをオンにします。 これでうまくいきました。




0

これはリンクされたクラスファイルで発生しました。プロジェクトの残りの部分ではE&Cを許可しましたが、リンクされたファイルの編集で同じエラーが発生しました。解決策は、リンクされたファイルを独自のプロジェクトに分割し、プロジェクトを参照することでした。


0

私も同じ問題に直面しました。私の問題は、ファイルを変更できるが、別のファイルは変更できないことでした(両方とも同じプロジェクトにあります)。後で、変更できないファイルも別のプロジェクトの一部であることがわかりました。別のプロジェクト(ユニットテスト)が読み込まれず、インテリジェント VSデバッガーが、この特定のファイルのアセンブリが読み込まれなかったというエラーを表示し、変更が許可されていません。なんて変なんだ!

したがって、ユニットテストプロジェクトをアンロードして、EnCデバッグを続行する必要がありました。


0

ソリューションにデータベースプロジェクトがあり、webformsプロジェクトの編集ができませんでした。

データベースプロジェクトの[アンロード]をクリックすると、すべてが問題なく動作します。


0

VS2017の場合、ソリューションの.suoファイルを削除すると役立ちます。:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.