私は VS2005 を使用しており、現在 ASP.net Web アプリケーションをデバッグしようとしています。コード ビハインド ファイルの一部のコードを変更したいのですが、ブレーク ポイントで停止して何かを編集しようとするたびに、次のエラー メッセージが表示されます。または、デバッグ中のコードが最適化されています。」
すべての「エディット コンティニュ」オプションが有効になっていることは確かです。助言がありますか?
これは直感に反するように思えるかもしれませんが、編集して続行をオフにします。
別の「読み取り専用ファイルの編集を許可する」または「デバッグ中でも編集を許可する...そんなことはありません!」があるかもしれません。どこかに設定しますが、確認するために2005を確認する必要はありません。
2008 では、編集をオフにして続行すると、実行中に編集できます (ただし、これらの変更は適用されません)。
実際にエディット コンティニュを使用する場合は、プロジェクト設定の Web タブで、プロジェクトに対しても有効にする必要があります。
アプリケーションは、実際にはコードのコンパイル済みバージョンから実行されています。変更した場合、変更を機能させるために再コンパイルする必要があります。つまり、実行中のバージョンを新しいコンパイル済みバージョンに交換する必要があります。これはかなり難しい問題です。それが、Microsoft がそれを不可能にした理由だと思います。変更が実際には行われていないのに行われたと考えるのを防ぐためです。
Asp.netの場合、「編集と続行」の2つのタイプを考えることができます。
1つは、従来の編集とブラウザの更新です。これが機能するのは、ブラウザの更新により、プリコンパイルされたコードビハインドファイルを除くすべてが再コンパイルされるためです。これは、実際には同様の効果を提供しますが、編集および続行とは呼ばれません。このモードでは、ファイルがプリコンパイルおよびデプロイされているため、ファイルの背後にあるコードを変更することはできませんが、それ以外のことはほとんど変更できます。
別のモードでは、プリコンパイルされたコードビハインドファイルを変更できますが、それ以外は変更できません...(これは、ASP.Netのプロジェクトプロパティで設定する必要があるChris Bilsonが言及しているモードです)。この場合、ASP.netについてほとんど知らないデバッガーの編集と続行機能を使用しています。ソリューションには、ビルド方法を知っていると主張するプロジェクトがあるため、デバッガーはロードされた.Netアセンブリを確認し、デバッガーで停止したときにそれを変更できます。この場合、デバッグセッションを台無しにするような変更を行うことができなくなります。ただし、この方法は、ブラウザの更新を必要とせずに、実行中にコードを変更する唯一の方法です。
Visual Studio 2008 WAP (Web Application Project) でこれを検索しましたが、解決策を見つけるのに 2 日かかりました。
チェックする必要がある場所は 2 つあります。
実行中にファイルを変更することが許可されて*.aspx
おり、Web インスタンスで更新を押すと、それらの変更をすぐに確認できます。ただし、プログラムの実行中に*.cs/*.vb
またはファイルを変更することはできません。*.designer.cs/*.designer.vb
記録として、私は VS 2008 で同様の問題を抱えていましたが、別のソリューションで問題を解決しました。 デバッグ モードでの Visual Studio 2008 でのコードの編集
リリースモードになっていないことを確認してください。リリース モードでは、デバッグ中にコードを編集することはできません。モードをデバッグに変更するだけです