VisualStudioのXAMLデザイナを拡張する 3.拡張機能をデバッグする


作った拡張機能をデバッグするために、Walkthrough: Debugging WPF Custom Controls at Design Timeを参考にしてみたのですが、シンボルが読み込まれず断念してました。
試行錯誤してみたらなんかできたので、記録しておきます。

環境

Visual Studio Community 2017

1.デバッグ対象のコントロールを配置したプロジェクトを開く

第一回の6.で作成したような、デバッグ対象のコントロールを配置したプロジェクトを開きます。

2.対象のコントロールを配置したXAMLファイルを開き、XAMLデザイナを表示させる

この手順を飛ばすと次の手順がうまくいかないかと思います。

3.新しくVisual Studioを起動し、1.で開いたプロジェクトを開く

1.で開いているVSはそのままで、新しくVisual Studio(以下新VS)を起動します。

4.新VSで、[デバッグ] - [プロセスにアタッチ]を選択

アタッチ先のプロセスがずらっと出てくるので、「XDesProc.exe」を選択します。
2つ出てくる場合は、新VSのものも出てきてるのだと思うので、タスクマネージャで新VSの「Microsoft Visual Studio XAML Designer」を終了したり起動時にXAMLファイルが表示されないようにしたりと工夫すればいいかと思います。
もちろんどっちかがデバッグ対象のプロセスだと思うので、うまくいかない場合は別プロセスにアタッチしなおすでもいいかと思います。

5.新VSでデバッグしたい箇所にブレークポイントを配置

Providerクラスのコンストラクタあたりからはブレークできると思います。
AttributeTableのGetterはブレークしませんでした(多分デザイナが表示されてからだと遅い)

6.旧VSでブレークポイントを通るような操作を実行

第一回のサンプルコードでいえば、Activateメソッドにブレークポイントを置けば、CustomButtonをクリックしたときにブレークします。