適用対象: Visual Studio
この記事では、 VSPackages に関する一般的な問題とトラブルシューティングのヒントについて説明します。
VSPackage によって Visual Studio の起動が維持される
このシナリオでは、コマンド プロンプトで devenv.exe /safemode を入力して、Visual Studio をセーフ モードで起動します。 このプロセスでは、Visual Studio に含まれる VSPackage を除き、VSPackage は読み込まれません。
VSPackage が読み込まれない
この問題のトラブルシューティングを行うには、次の 1 つ以上の手順を試してください。
VSPackage が実行に登録されているレジストリ ルート (通常は実験用レジストリ ルート) を使用していることを確認します。 詳細については、「実験用インスタンス」を参照してください。
VSPackage が実験用レジストリ ルートで実行されるように設定されている場合は、実験用バージョンの Visual Studio を実行していることを確認します。
試験段階のバージョンを実行するには、Visual Studio コマンド プロンプトを開き、「 devenv /rootsuffix exp」と入力します。
VSPackage レジストリ エントリを確認します。 詳細については、VSPackage の登録に関するページと「VSPackage を管理する」を参照してください。
VSPackage の読み込みに失敗している Visual Studio のインスタンスの [出力] ウィンドウを開きます。 VSPackage が読み込みに失敗している理由に関する情報が、そのウィンドウに表示されることがあります。
Note
Visual Studio の実験用バージョンを Visual Studio 統合開発環境 (IDE) から起動している場合は、両方のバージョンの [出力] ウィンドウを調べます。
アクティビティ ログを調べます。 詳細については、「方法: アクティビティ ログを使用する」を参照してください。
IDE によってスローされる例外の詳細については、Debug メニューの Exceptions を選択して例外を有効にします。 [例外] ダイアログ ボックスで、詳細情報が必要な例外の種類を選択します。
VSPackage が登録されていない
VSPackage アセンブリが信頼できる場所にあることを確認します。 RegPkg は、既定の .NET セキュリティ構成のネットワーク共有など、信頼されていない場所または部分的に信頼された場所にアセンブリを登録できません。 ユーザーが信頼されていない場所にプロジェクトを作成するたびに警告が表示されますが、 このメッセージを再度表示しない場合 チェック ボックスをオンにすると、この警告が繰り返し発生しないようにすることができます。
コマンドが表示されないか、選択するとエラーが生成される
この問題を解決するには、次の手順を試してください。
Visual Studio コマンド プロンプトで devenv /rootsuffix Exp /setup を入力して、新しいメニュー コマンドまたは変更されたメニュー コマンドと IDE に既に含まれているコマンドをマージします。
Visual Studio で VSPackage の UI.dll が見つかることを確認します。
レジストリの Packages セクションで、VSPackage の CLSID を探します。
HKLM\Software\Microsoft\Visual Studio\<version>\Packages
SatelliteDll サブキーによって指定されたパスが正しいことを確認します。
VSPackage が予期せず動作する
この問題のトラブルシューティングを行うには、次の 1 つ以上の手順を試してください。
コード内にブレークポイントを設定します。
デバッグの開始点としては、コンストラクターと初期化メソッドを使用することをお勧めします。 また、メニュー コマンドなど、評価する領域にブレークポイントを設定することもできます。 ブレークポイントを有効にするには、デバッガーで実行する必要があります。
[プロジェクト] メニューの [プロパティ] を選択します。
[プロパティ ページ] ダイアログ ボックスで、[デバッグ] タブをクリックします。
[ コマンド行引数 ボックスに、VSPackage がターゲットとする開発環境のルート サフィックスを入力します。 たとえば、実験用ビルドを選択するには、「 /RootSuffix Exp」と入力します。
Debug メニューの [デバッグの開始] 選択するか F5 キーを押します。
Note
プロジェクトをデバッグする場合は、ここでプロジェクトを作成するか、既存のインスタンスを読み込みます。
アクティビティ ログを使用します。
キー ポイントでアクティビティ ログに情報を書き込むことによって、VSPackage の動作をトレースします。 この手法は、製品版環境で VSPackage を実行する場合に特に役に立ちます。 詳細については、「方法: アクティビティ ログを使用する」を参照してください。
パブリック シンボルを使用します。
デバッグ中の読みやすさを向上させるために、デバッガーにシンボルをアタッチできます。
- [ツール] - [オプション] メニューを選択し、[デバッグ] - [シンボル] ダイアログ ボックスに移動します。
- Symbol ファイル (.pdb) の場所:
https://msdl.microsoft.com/download/symbols
を追加します。 - パフォーマンスを向上させるには、シンボル キャッシュ フォルダーを指定します (例: C:\symbols。
VSPackage またはその依存関係のいずれかが見つからない
マネージド コードの場合は、参照パスが正しいことを確認します。
[プロジェクト] メニューの [プロパティ] を選択します。
[プロパティ ページ] ダイアログ ボックスの [参照] タブを選択し、すべてのパスが正しいことを確認します。 または、オブジェクト ブラウザーを使用して、参照先オブジェクトを参照することもできます。
マネージド コードの場合は、Fuslogvw.exe (アセンブリ バインディング ログ ビューアー) を使用して、失敗したアセンブリの読み込みの詳細を表示できます。
アンマネージド コードの場合は、Visual Studio CLSID レジストリ ノード内で VSPackage の CLSID を見つけます:
HKLM\Software\Microsoft\Visual Studio\<version>\CLSID
InprocServer32 エントリに VSPackage DLL の正しいパスがあることを確認します。