14

WPF MarkupExtensionを開発していますが、設計時にエラーが発生しました。以前のバージョンのVisualStudio2010では、Visual Studio 2010の2番目のインスタンスを開始し、既に実行中のインスタンスのプロセスに接続して、ブレークポイントを設定し、デザイン時の動作をデバッグすることができました。

ただし、Visual Studio 2012では、別のVisual Studio 2012のプロセスにアタッチすることもできますが、2番目のインスタンスにシンボルが読み込まれないため、VisualStudio2010のようにデザインタイムをデバッグできません。

このデバッガーを実行するにはどうすればよいですか?

私が試したこと:

  • 「devenv.exe/RootSuffixExp」のトリックは成功しませんでした
  • 常に管理者として実行する
  • すべてまたはデフォルトのシンボルをロード
  • ネイティブコードを使用した場合と使用しない場合のデバッグ(プロセスのアタッチ)
  • .NET 4コードを使用した場合と使用しない場合のデバッグ(プロセスの接続)
4

3 に答える 3

14

Visual Studio 2012では、WPFデザイナーは別のプロセスで実行されます。そのプロセスをいじってみてください。プロセス名を簡単に見つけることができるはずです。

于 2012-10-11T15:37:51.900 に答える
8

このプロセスはXDesProcと呼ばれ、新しいプレビューウィンドウごとに作成されます。そのため:プレビューウィンドウをデバッグするには、同じソリューションでVisual Studio 2012の2番目のインスタンスを開き、ブレークポイントを設定してXDesProcに接続します。適切なプロセスにアタッチするには、プレビューウィンドウを1つだけ開くことをお勧めします。それ以外の場合は、 ProcessExplorerを使用して正しいプロセスを見つけてください。

于 2015-02-27T09:50:56.530 に答える
3

[プロジェクトコードの有効化/無効化]トグルが[有効]に設定されていることを確認してください...VS/ Blend 2015では、 ここに示すように、XAMLエディターの下にある小さなアイコンです。

無効になっている場合は、これがデザインタイムインスタンスが機能していないように見える理由である可能性があります。

さらに、無効になっていて、2番目のVSインスタンスを使用してデバッグしようとすると、コードビハインドで設定したブレークポイントをXDesProcに接続すると、「現在ヒットしない。[理由]シンボルがないため]と報告されます。このドキュメント用にロードされました」。どういうわけかシンボルをロードする必要があると思うかもしれませんが、そうしようとして[モジュール]ウィンドウを開くと、リストにモジュールが表示されません。

この設定が無効になっているため、この問題で数時間を失いました。これが他の人が同じことをしないのに役立つことを願っています。そのため、関連するいくつかの質問にこれを投稿します。

ところで、これらの関連する質問の1つについて、 JamesMcNellisによるこのデバッグ手順の優れた説明があります。

于 2016-06-22T20:22:09.643 に答える