VSPackage のインストール ディレクトリの選択
VSPackage とそのサポート ファイルは、ユーザーのファイル システム上にある必要があります。 場所は、VSPackage がマネージドかアンマネージドかどうか、サイド バイ サイドのバージョン管理スキーム、ユーザーの選択によって異なります。
アンマネージド VSPackage
アンマネージド VSPackage は、任意の場所にインストールできる COM サーバーです。 その登録情報は、その場所を正確に反映している必要があります。 インストーラーのユーザー インターフェイス (UI) では、既定の場所を ProgramFilesFolder
Windows インストーラー プロパティ値のサブディレクトリとして指定する必要があります。 次に例を示します。
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\
小さいブート パーティションを保持し、別のボリュームにアプリケーションやツールをインストールすることを希望するユーザーに対応するために、ユーザーは既定のディレクトリを変更できる必要があります。
バージョン管理された VSPackage がサイド バイ サイドのスキームで使用されている場合は、サブディレクトリを使用して異なるバージョンを格納できます。 次に例を示します。
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2002\
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2003\
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2005\
マネージド VSPackage
マネージド VSPackage は、任意の場所にインストールすることもできます。 ただし、アセンブリの読み込み時間を短縮するには、常にグローバル アセンブリ キャッシュ (GAC) にインストールすることを検討する必要があります。 マネージド VSPackage は常に厳密な名前付きアセンブリなので、GAC にインストールすると、厳密な名前の署名の検証はインストール時にのみ行われます。 ファイル システム内の他の場所にインストールされている厳密な名前付きアセンブリでは、読み込まれるたびに署名を検証する必要があります。 マネージド VSPackage を GAC にインストールする場合は、regpkg ツールの /assembly スイッチを使用して、アセンブリの厳密な名前を指すレジストリ エントリを書き込みます。
マネージド VSPackage を GAC 以外の場所にインストールする場合は、アンマネージド VSPackage でのディレクトリ階層の選択に関する前述のアドバイスに従ってください。 regpkg ツールの /codebase スイッチを使用して、VSPackage アセンブリのパスを指すレジストリ エントリを書き込みます。
詳細については、VSPackage の登録および登録解除に関するページを参照してください。
サテライト DLL
慣例により、特定のロケールのリソースを含む VSPackage サテライト DLL は、VSPackage ディレクトリのサブディレクトリに配置されます。 サブディレクトリはロケール ID (LCID) 値に対応します。
「VSPackage を管理する」の記事は、Visual Studio で VSPackage のサテライト DLL を実際に検索する場所をレジストリ エントリで制御することを示しています。 ただし、Visual Studio では、LCID 値に対して名前が付けられたサブディレクトリでサテライト DLL の読み込みが次の順序で試行されます。
既定の LCID (Visual Studio LCID。たとえば、英語の場合は \1033)
既定のサブ言語を持つ既定の LCID。
システムの既定の LCID。
既定のサブ言語を持つシステムの既定の LCID。
米国英語 (.\1033 または .\0x409)。
VSPackage DLL にリソースが含まれており、SatelliteDll\DllName レジストリ エントリがこれを指す場合、Visual Studio ではこれらを上記の順序で読み込もうとします。