カスタム コード分析規則、データベース単体テスト条件、データ ジェネレーター、リファクタリングの種類、ビルド コントリビューター、配置コントリビューターなどの独自の拡張機能を作成できます。 これらの拡張機能をインストールした場合、拡張機能が正常に読み込まれないという問題が発生することがあります。 このトピックでは、一般的な問題とその対処方法について説明します。 拡張機能アセンブリをインストールおよび登録する方法の詳細については、「方法: 拡張機能を登録および管理する」を参照してください。
拡張機能が読み込まれない場合の対処方法
拡張機能をインストールし、登録した後で、Visual Studio を再起動する必要があります。 Visual Studio を再起動したら、まず [エラー一覧] を表示してください。 1 つ以上の拡張機能が読み込まれていない場合、[エラー一覧] にエラーが表示されることがあります。 [表示] メニューの [エラー一覧] をクリックします。 次のようなエラーが表示された場合、拡張機能は正しく読み込まれていません。
Failed to load extension MyBuildContributor.ModelStatisticsReport. Exception message: Could not load type 'MyBuildContributor.ModelStatisticsReport' from assembly 'MyBuildContributor, Version 1.0.0.0, Culture=neutral, PublicKeyToken=34fdfd7e8ae7c7a8'.
.extensions.xml ファイルが見つからない場合など、拡張機能が読み込まれなくてもエラーが表示されない場合があります。
拡張機能が読み込まれなかった原因の診断
拡張機能が読み込まれない場合、次のような原因が考えられます。
拡張機能ファイルに 1 つ以上のエラーがある。
拡張機能アセンブリが署名されていない。
extensions.xml ファイルが見つからない。
拡張機能アセンブリが見つからない。
拡張機能のコードが正しいクラスを拡張していない。
拡張機能のクラスまたはメンバーに正しい属性がない。
拡張機能ファイルに 1 つ以上のエラーがある。
拡張機能が読み込まれない最も一般的な原因は、Extensions.XML ファイルに次のエラーが 1 つ以上含まれていることです。
誤った型名
誤ったアセンブリ名
誤ったバージョン番号
誤った公開キー トークン
extensions.xml ファイルを作成する方法の詳細については、「方法: 拡張機能を登録および管理する」を参照してください。
拡張機能アセンブリが署名されていない
拡張機能アセンブリが署名されていない場合、Visual Studio はそのアセンブリを読み込むことができません。 拡張機能アセンブリに署名するには、次の手順を実行します。
アセンブリの署名とビルドを行うには
拡張機能プロジェクトが含まれているソリューションを開きます。
[プロジェクト] メニューの [MyExtensionProject のプロパティ] をクリックします。ここで、MyExtensionProject は署名する拡張機能が含まれるプロジェクトの名前です。
[署名] タブをクリックします。
[アセンブリの署名] をクリックします。
[厳密な名前のキー ファイルを選択してください] の [<新規>] をクリックします。
[厳密な名前キーの作成] ダイアログ ボックスで、[キー ファイル] に「MyRefKey」と入力します。
(省略可能) 厳密な名前のキー ファイルにはパスワードを指定できます。
[OK] をクリックします。
[ファイル] メニューの [すべてを保存] をクリックします。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
次に、アセンブリをインストールして登録し、データベース プロジェクトを配置するときに読み込まれるようにします。
extensions.xml ファイルが見つからない
拡張機能を Visual Studio に登録するときに XML ファイルを指定しなかった場合、拡張機能は読み込まれません。 通常は、MyAssembly.Extensions.XML ファイルを %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions フォルダーにコピーします。ここで、MyAssembly は拡張機能の名前です。
注意
XML ファイルは、[Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions フォルダーに直接コピーしないことをお勧めします。 代わりにサブフォルダーを使用すると、Visual Studio に用意されている他のファイルを誤って変更することを防げます。
Extensions.XML ファイルの作成方法の詳細については、「方法: 拡張機能を登録および管理する」を参照してください。
拡張機能アセンブリが見つからない
拡張機能アセンブリを Extensions フォルダーにコピーしていない場合、拡張機能は読み込まれません。 通常は、MyAssembly.dll および MyAssembly.pdb ファイルを %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions フォルダーにコピーします。ここで、MyAssembly は拡張機能の名前です。
注意
XML ファイルは、[Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions フォルダーに直接コピーしないことをお勧めします。 代わりにサブフォルダーを使用すると、Visual Studio Premium に用意されている他のファイルを誤って変更することを防げます。
拡張機能のコードが正しいクラスを拡張していない
プライマリ クラスを拡張することにより、拡張機能のそれぞれの種類に対応する基本クラスを定義します。 正しい基本クラスを継承していない場合、拡張機能は正しく機能しません。 詳細については、対応するチュートリアルを参照してください。
拡張機能のクラスまたはメンバーに正しい属性がない
拡張機能の各種類について、クラスには拡張機能と互換性のあるデータベース スキーマ プロバイダーの種類を宣言する属性が必要です。 また、拡張機能によっては、1 つ以上のクラス メソッドに追加の属性が必要となります。 詳細については、対応するチュートリアルを参照してください。
参照
概念
カスタムのデータベース リファクタリングの種類またはターゲットの作成
カスタム データ ジェネレーターを使用した特殊なテスト データの生成