web-dev-qa-db-ja.com

Visual Studio拡張機能をデバッグする方法

Visual Studio 2010用のVSIX拡張機能を作成しているだけで、デバッグ方法がわかりません。

明らかな方法の1つは、メッセージを出力することです。拡張テンプレートはTrace.WriteLine()を使用します。しかし、出力はどこにありますか?

87
Lu55

Visual Studio Extensionsは、他のアプリケーションと同様にデバッグできます。ロードされた拡張機能でdevenvを起動するには、デバッグエクスペリエンスをセットアップする必要があります。以下を試してください

  • プロジェクトを右クリックして、[プロパティ]を選択します
  • [デバッグ]タブに移動します

Start External Programのラジオボタンをクリックします。 devenv.exeバイナリをポイントします。私のマシンでは

C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

ただし、x64以外のマシンでは、「(x86)」部分を削除できます。

次に、コマンドライン引数を/rootsuffix Expに設定します。これにより、通常の構成Hiveの代わりに実験的なHiveを使用するようにVisual Studioに指示します。デフォルトでは、VSIX拡張機能はビルド時に実験的なHiveに登録されます。

これでF5が可能になり、VSIXを利用可能な拡張機能としてVisual Studioが起動します。

175
JaredPar

@JaredParによって受け入れられた答えは技術的には正しいですが、すべての開発者に対して、コードの新しいコピーを取得するたびに、そしてcsproj.userファイルが削除されます。そのようにすると、設定はcsproj.userファイル。

より良いオプションは、csprojファイルに設定を置いて、失われないようにすることです。残念ながら、Visual Studioではこれを自動的に行うことができないため、設定を手動で追加する必要があります。幸いなことに、設定はどのプロジェクトでも同じです。

プロジェクトを右クリックしてアンロードし、再度右クリックしてcsprojプロジェクトファイルファイルを編集します。 XMLで、最初のPropertyGroupに、たとえばTargetFrameworkの直後に以下を追加します。

<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
<StartArguments>/rootsuffix Exp</StartArguments>

これには次の利点があります。

  • デバッグとリリース用にセットアップします
  • 現在実行しているVisual Studioのバージョンを実行します
  • ソース管理にチェックインされるため、すべての開発者がその方法を覚えておく必要はありません。

@MBulliがコメントで述べているように、受け入れられた回答に変更を加えた場合は、*.csproj.userファイルの設定は、メインのcsprojファイルに追加した設定を上書きするためです。

52
Rob Prouse

OutputWindowHelper.OutputString メソッドは、「一般」出力ウィンドウペインに書き込みます(Ctrl Alt o)。これをVS 2013で取得するために、.csproj参照にこの行を追加しました

<Reference Include="Microsoft.VisualStudio.Services.Integration, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

this answer も参照してください。

2
tcb

UnitTestExtensionをデバッグしようとする場合は、descibed here のようなvstest。*。exeプロセスにデバッガーを接続する必要もあります。そうしないと、アクティブ化ブレークポイントが表示される場合がありますが、デバッガーはヒットしません。

0
smkanadl