Visual Studio 2010用のVSIX拡張機能を作成しているだけで、デバッグ方法がわかりません。
明らかな方法の1つは、メッセージを出力することです。拡張テンプレートはTrace.WriteLine()
を使用します。しかし、出力はどこにありますか?
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が起動します。
@JaredParによって受け入れられた答えは技術的には正しいですが、すべての開発者に対して、コードの新しいコピーを取得するたびに、そしてcsproj.user
ファイルが削除されます。そのようにすると、設定はcsproj.user
ファイル。
より良いオプションは、csproj
ファイルに設定を置いて、失われないようにすることです。残念ながら、Visual Studioではこれを自動的に行うことができないため、設定を手動で追加する必要があります。幸いなことに、設定はどのプロジェクトでも同じです。
プロジェクトを右クリックしてアンロードし、再度右クリックしてcsproj
プロジェクトファイルファイルを編集します。 XMLで、最初のPropertyGroup
に、たとえばTargetFramework
の直後に以下を追加します。
<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
<StartArguments>/rootsuffix Exp</StartArguments>
これには次の利点があります。
@MBulliがコメントで述べているように、受け入れられた回答に変更を加えた場合は、*.csproj.user
ファイルの設定は、メインのcsproj
ファイルに追加した設定を上書きするためです。
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 も参照してください。
UnitTestExtensionをデバッグしようとする場合は、descibed here のようなvstest。*。exeプロセスにデバッガーを接続する必要もあります。そうしないと、アクティブ化ブレークポイントが表示される場合がありますが、デバッガーはヒットしません。