Freigeben über


Parallele Datei-Zuordnungen verwalten

Wenn ein VSPackage Dateizuordnungen enthält, müssen Sie entscheiden, wie parallele Installationen behandelt, bei denen eine bestimmte Version von Visual Studio aufgerufen werden soll, um eine Datei zu öffnen. Nicht kompatibler Dateiformate versetzen das Problem zusammen.

Benutzer eine neue Version eines Produkts, um mit früheren Versionen kompatibel ist, für vorhandene Dateien in einer neuen Version ohne Daten in den deaktivierten Zustand geladen werden können. Im Idealfall kann ein VSPackage die Dateiformate früherer Versionen laden und speichern. Falls dies nicht zutrifft, sollten Sie sich anbieten, das Dateiformat auf die neue Version VSPackages zu aktualisieren. Das abwärts gerichtete dieses Ansatzes besteht darin, dass die aktualisierte Datei nicht in der Vorgängerversion geöffnet werden kann.

Um dieses Problem zu vermeiden, können Sie beim Ändern von Erweiterungen Dateiformate nicht kompatibel sind. Beispielsweise könnte die Erweiterung, VSPackages Version 1 und Version 2 .mypkg10 konnte die Erweiterung, .mypkg20 verwenden. Dieser Unterschied identifiziert ein VSPackage, der eine bestimmte Datei geöffnet. Wenn Sie neueres VSPackages der Liste von Programmen hinzufügen, die mit einer alten Erweiterung zugeordnet sind, können Benutzer der rechten Maustaste auf die Datei, und wählen, ob sie in späteren VSPackages zu öffnen. An diesem Punkt kann ein VSPackage, die Datei in das neue Format zu aktualisieren oder die Datei zu öffnen und die Kompatibilität mit früheren Versionen von VSPackages zu erhalten.

Hinweis

Sie können diese Ansätze kombinieren.Sie können z. B. die Abwärtskompatibilität, indem Sie eine ältere Datei geladen und anbieten, das Dateiformat aktualisiert werden, wenn der Benutzer es speichert.

Das Problem wurde

Wenn Sie mehrere paralleles VSPackages die gleiche Erweiterung verwenden möchten, müssen Sie die Version von Visual Studio auswählen, die mit der Erweiterung zugeordnet ist. Es folgen zwei Alternativen:

  • Öffnen Sie die Datei in der neuesten Version von Visual Studio installierte auf dem Computer eines Benutzers.

    In diesem Verfahren wird das Installationsprogramm zum Bestimmen der neuesten Version von Visual Studio und im enthaltenden Registrierungseintrag, der für die Dateizuordnung geschrieben werden soll. In einem Windows Installer-Paket können Sie benutzerdefinierte Aktionen beinhalten, Festlegen einer Eigenschaft, die die letzte Version von Visual Studioangibt.

    Hinweis

    In diesem Kontext an „neuesten“ bedeutet „neueste unterstützte Version“. Diese Installationsprogramm erkennt nicht automatisch Einträge für eine nachfolgende Version von Visual Studio.Einträge in Erkennen Systemanforderungen und Befehle ausgeführt werden müssen, um die Installation sind ähnlich, die hier dargestellt werden und sind, zusätzliche Versionen von Visual Studiozu unterstützen, erforderlich.

    Die folgenden Zeilen in der CustomActions-Tabelle legen die DEVENV_EXE_LATEST-Eigenschaft fest, um eine Eigenschaft durch die Tabellen und AppSearch RegLocator zu sein, die in Befehle ausgeführt werden müssen, um die Installationerläutert wurden. Zeilen in der InstallExecuteSequence-Tabelle planen benutzerdefinierte Aktionen auszuführen zu einem frühen Zeitpunkt in der Sequenz. Werte in der Spalte Bedingung der die Logik ausführen:

    • Visual Studio .NET 2002 ist die aktuelle Version, wenn sie die einzige aktuelle Version ist.

    • Visual Studio .NET 2003 ist die aktuelle Version nur, wenn sie vorhanden ist und Visual Studio nicht vorhanden ist.

    • Visual Studio ist die neueste Version, wenn sie die einzige aktuelle Version ist.

    Der Nettoertrag besteht darin, dass DEVENV_EXE_LATEST den Pfad der neuesten Version von devenv.exe enthält.

    CustomActions-Tabellen von Zeilen, die die letzte Version von Visual Studio bestimmen

    Aktion

    Typ

    Quelle

    Target

    CA_SetDevenvLatest_2002

    51

    DEVENV_EXE_LATEST

    [DEVENV_EXE_2002]

    CA_SetDevenvLatest_2003

    51

    DEVENV_EXE_LATEST

    [DEVENV_EXE_2003]

    CA_SetDevenvLatest_2005

    51

    DEVENV_EXE_LATEST

    [DEVENV_EXE_2005]

    InstallExecuteSequence-Tabellen von Zeilen, die die letzte Version von Visual Studio bestimmen

    Aktion

    Bedingung

    Sequenz

    CA_SetDevenvLatest_2002

    DEVENV_EXE_2002 AND NOT (DEVENV_EXE_2003 OR DEVENV_EXE_2005)

    410

    CA_SetDevenvLatest_2003

    DEVENV_EXE_2003 AND NOT DEVENV_EXE_2005

    420

    CA_SetDevenvLatest_2005

    DEVENV_EXE_2005

    430

    Sie können die DEVENV_EXE_LATEST-Eigenschaft in der Registrierung des Windows Installer-Pakets Tabelle verwenden, um die HKEY_CLASSES_ROOT \ProgId\ Shell \ zum Schreiben geöffnet BEFEHLSTASTE \ der Standardwert " %1 „[DEVENV_EXE_LATEST]

  • Lassen Sie ein freigegebenes programm Dialogfeldstartprogramm ausgeführt werden, das die beste Wahl der verfügbaren VSPackage-Versionen treffen kann.

    Die Entwickler von Visual Studio beschlossen diesen Ansatz, um die komplexen Anforderungen der mehrere Formate der Projektmappen zu behandeln und projektieren dass Ergebnis aus verschiedenen Versionen von Visual Studio. In diesem Ansatz registrieren Sie ein Add-In als programm Dialogfeldstartprogramm Ereignishandler. Das Dialogfeldstartprogramm überprüft die Datei und entscheidet, der Version von Visual Studio und VSPackages diese bestimmte Datei bearbeiten können. Wenn beispielsweise ein Benutzer eine Datei geöffnet, die zuletzt von einer bestimmten Version von VSPackages gespeichert wurde, kann das Dialogfeldstartprogramm dieses VSPackage in der entsprechenden Version von Visual Studiostarten. Darüber hinaus kann ein Benutzer das Dialogfeldstartprogramm so konfigurieren, dass immer die neuesten Version zu starten. Ein Dialogfeldstartprogramm kann auch einen Benutzer auffordern, das Format der Datei zu aktualisieren. Wenn das Format der Datei eine Versionsnummer enthält, könnte das Dialogfeldstartprogramm einen Benutzer benachrichtigen, wenn das Dateiformat von einer Version ist, die später als ein oder mehrere des installierten VSPackages ist.

    Das Dialogfeldstartprogramm sollte in einer Windows Installer-Komponente sein, die mit allen Versionen von VSPackages freigegeben wird. Dieser Prozess wird sichergestellt, dass immer die aktuellste Version installiert ist und wird nicht entfernt, bis alle Versionen von VSPackages deinstalliert werden. Auf diese Weise werden die Dateizuordnungen und andere Registrierungseinträge Dialogfeldstartprogramm der Komponente beibehalten, auch wenn eine Version von VSPackages deinstalliert wird.

Deinstallieren und Datei-Zuordnungen

VSPackage Deinstallieren, die Registrierungseinträge für Dateizuordnungen schreibt, entfernt die Dateizuordnungen. Daher hat die Erweiterung keine zugeordneten Programme. Windows Installer nicht“ „stellt die Registrierungseinträge wieder her, die hinzugefügt wurden, als ein VSPackage installiert wurde. Im Folgenden sind einige Methoden, Dateizuordnungen eines Benutzers zu beheben:

  • Mithilfe einer freigegebenen Komponente Dialogfeldstartprogramm, wie zuvor beschrieben.

  • Weisen Sie den Benutzer auf, um eine Reparieren der Version von VSPackages auszuführen, das der Benutzer die Dateizuordnung besitzen sollen.

  • Erstellen Sie ein separates ausführbares Programm bereit, die die entsprechenden Registrierungseinträge neu schreibt.

  • Erstellen Sie eine optionsseite Konfiguration oder Dialogfeld bereit, mit deren Hilfe Benutzer Dateizuordnungen auswählen und verlorene Zuordnungen freigeben können. Weisen Sie Benutzern, um die Deinstallation auszuführen.

Siehe auch

Konzepte

Verben für Dateinamenerweiterungen registrieren

Weitere Ressourcen

Registrieren der Dateinamenerweiterungen für die parallele Bereitstellungen