Freigeben über


Auswählen des Installationsverzeichnisses für ein VSPackage

Ein VSPackage und seine unterstützenden Dateien müssen sich im Dateisystem eines Benutzers befinden. Der Speicherort hängt davon ab, ob das VSPackage verwaltet oder nicht verwaltet wird, ihr paralleles Versionsverwaltungsschema und die Benutzerauswahl.

Nicht verwaltete VSPackages

Ein nicht verwaltetes VSPackage ist ein COM-Server, der an einem beliebigen Speicherort installiert werden kann. Ihre Registrierungsinformationen müssen ihren Standort genau widerspiegeln. Ihre Installationsprogramm-Benutzeroberfläche sollte einen Standardspeicherort als Unterverzeichnis des ProgramFilesFolder Windows Installer-Eigenschaftswerts bereitstellen. Beispiel:

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\

Der Benutzer sollte das Standardverzeichnis ändern dürfen, damit Benutzer, die eine kleine Startpartition beibehalten, die Anwendungen und Tools auf einem anderen Volume installieren möchten.

Wenn Ihr paralleles Schema ein versionsbasiertes VSPackage verwendet, können Sie Unterverzeichnisse verwenden, um unterschiedliche Versionen zu speichern. Beispiel:

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2002\

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2003\

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2005\

Verwaltete VSPackages

Verwaltete VSPackages können auch an jedem beliebigen Ort installiert werden. Sie sollten sie jedoch immer im globalen Assemblycache (GAC) installieren, um die Ladezeiten der Assembly zu reduzieren. Da verwaltete VSPackages immer stark benannte Assemblys sind, bedeutet die Installation im GAC, dass die Überprüfung der Signatur mit starkem Namen nur zur Installationszeit dauert. Stark benannte Assemblys, die an anderer Stelle im Dateisystem installiert sind, müssen ihre Signaturen jedes Mal überprüft werden, wenn sie geladen werden. Wenn Sie verwaltete VSPackages im GAC installieren, verwenden Sie den /assembly-Switch des regpkg-Tools, um Registrierungseinträge zu schreiben, die auf den starken Namen der Assembly verweisen.

Wenn Sie verwaltete VSPackages an einem anderen Speicherort als dem GAC installieren, folgen Sie den früheren Empfehlungen für nicht verwaltete VSPackages für die Auswahl von Verzeichnishierarchien. Verwenden Sie den /codebase-Switch des regpkg-Tools, um Registrierungseinträge zu schreiben, die auf den Pfad der VSPackage-Assembly verweisen.

Weitere Informationen finden Sie unter Registrieren und Aufheben der Registrierung von VSPackages.

Satelliten-DLLs

Standardmäßig befinden sich VSPackage-Satelliten-DLLs, die Ressourcen für ein bestimmtes Gebietsschema enthalten, in Unterverzeichnissen des VSPackage-Verzeichnisses . Die Unterverzeichnisse entsprechen den Gebietsschema-ID-Werten (LCID).

Der Artikel "VsPackages verwalten" gibt an, dass Registrierungseinträge steuern, wo Visual Studio tatsächlich nach einer VSPackage-Satelliten-DLL sucht. Visual Studio versucht jedoch, eine Satelliten-DLL in einem Unterverzeichnis zu laden, das nach einem LCID-Wert benannt ist, in der folgenden Reihenfolge:

  1. Standard-LCID (Visual Studio LCID; z. B. \1033 für Englisch)

  2. Standard-LCID mit der Standarduntersprache.

  3. Systemstandard-LCID.

  4. Systemstandard-LCID mit standardunterlanger Sprache.

  5. DEUTSCH (.\1033 oder .\0x409).

Wenn Ihre VSPackage-DLL Ressourcen und die SatelliteDll\DllName-Registrierungseintragspunkte enthält, versucht Visual Studio, sie in der obigen Reihenfolge zu laden.