2

SharePoint サイトで Microsoft コードをデバッグしたいと考えています。

Microsoft コードにステップインできるように.NET Reflector Visual Studio 拡張機能をダウンロードしましたが、いくつかの変数の値を取得しようとすると、次のエラーが表示されます。"Cannot obtain value of local or argument <this> as it is not available at this instruction pointer, possibly because it has been optimized away."

最適化をキャンセルしようとしましたが、Cameron MacFarland がここに書いたことを見たので、JIT 最適化なしで VS を開くコマンドを含むファイルを作成しました。2 番目のアクションについては、IIS が実行している SharePoint アプリケーションに関しては、その方法がわかりません。

これを達成する方法は?

編集:私の質問は基本的に:コードがIISによって実行されているときにコードの最適化を無効にする方法は?

4

2 に答える 2

2

ここに回答を投稿したところ、それがあなたの特定の質問にも当てはまることがわかりました。

簡単に言えば、これを機能させるために変更できるレジストリ設定があります。「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment」のレジストリに「COMPLUS_ZAPDISABLE」という文字列キーを追加します。キー値を「1」に設定します

この元のRed Gate の記事は、このトリックを見つけるのに役立ちました。

于 2013-03-12T15:12:25.570 に答える
1

私が最終的に行った解決策は、多かれ少なかれJaredParがここに書いたものです:

次のようなファイルを作成しました。

[.NET Framework Debugging Control] 
GenerateTrackingInfo=1 
AllowOptimize=0

そして、それをGACに入れ、最適化を無効にしたいdllの各フォルダー内に、拡張子「ini」を付けてdllの名前を付けました。

これで、変数の大部分が利用可能になりました。

于 2013-04-25T12:40:12.263 に答える