Správa přidružení souborů vedle sebe
Pokud váš balíček VSPackage poskytuje přidružení souborů, musíte se rozhodnout, jak zpracovávat souběžné instalace, ve kterých by se měla vyvolat konkrétní verze sady Visual Studio pro otevření souboru. Nekompatibilní formáty souborů tento problém sloučují.
Uživatelé očekávají, že nová verze produktu bude kompatibilní s dřívějšími verzemi, aby existující soubory mohly být načteny v nové verzi bez ztráty dat. V ideálním případě může balíček VSPackage načíst a uložit formáty souborů starších verzí. Pokud to není pravda, měli byste nabídnout upgrade formátu souboru na novou verzi balíčku VSPackage. Nevýhodou tohoto přístupu je, že upgradovaný soubor nelze otevřít v předchozí verzi.
Chcete-li se tomuto problému vyhnout, můžete změnit přípony, když jsou formáty souborů nekompatibilní. Například verze 1 vašeho balíčku VSPackage může použít rozšíření , mypkg10 a verze 2 může použít rozšíření .mypkg20. Tento rozdíl identifikuje balíček VSPackage, který otevře určitý soubor. Pokud do seznamu programů přidružených ke staré příponě přidáte novější balíčky VSPackage, můžou uživatelé kliknout pravým tlačítkem myši na soubor a zvolit, aby ho otevřeli v novějším balíčku VSPackage. V tomto okamžiku může váš balíček VSPackage nabídnout upgrade souboru na nový formát nebo otevřít soubor a zachovat kompatibilitu s dřívějšími verzemi balíčku VSPackage.
Poznámka:
Tyto přístupy můžete kombinovat. Můžete například nabídnout zpětnou kompatibilitu tak, že načtete starší soubor a nabídnete upgrade formátu souboru, když ho uživatel uloží.
Čelit problému
Pokud chcete, aby několik balíčků VSPackage vedle sebe používalo stejné rozšíření, musíte zvolit verzi sady Visual Studio, která je přidružená k rozšíření. Tady jsou dvě alternativy:
Otevřete soubor v nejnovější verzi sady Visual Studio nainstalované na počítači uživatele.
V tomto přístupu je váš instalační program zodpovědný za určení nejnovější verze sady Visual Studio, včetně toho v položce registru napsané pro přidružení souboru. V balíčku Instalační služby systému Windows můžete zahrnout vlastní akce pro nastavení vlastnosti, která označuje nejnovější verzi sady Visual Studio.
Poznámka:
V tomto kontextu "latest" znamená "nejnovější podporovaná verze". Tyto položky instalačního programu automaticky nezjistí následnou verzi sady Visual Studio. Položky v zjišťování požadavků na systém a v příkazech, které je nutné spustit po instalaci , jsou podobné těm, které jsou zde uvedeny a jsou vyžadovány pro podporu dalších verzí sady Visual Studio.
Následující řádky v tabulce CustomAction nastavují vlastnost DEVENV_EXE_LATEST na vlastnost nastavenou tabulkami AppSearch a RegLocator popisované v příkazech, které musí být spuštěny po instalaci. Řádky v tabulce InstallExecuteSequence plánují vlastní akce v rané fázi pořadí spuštění. Hodnoty ve sloupci Podmínka zpracují logiku:
Visual Studio .NET 2002 je nejnovější verze, pokud se jedná o jedinou aktuální verzi.
Visual Studio .NET 2003 je nejnovější verze pouze v případě, že je k dispozici a Visual Studio není k dispozici.
Visual Studio je nejnovější verze, pokud se jedná o jedinou aktuální verzi.
Net result is that DEVENV_EXE_LATEST contains the path of the latest version of devenv.exe.
Řádky tabulky CustomAction, které určují nejnovější verzi sady Visual Studio
Akce Typ Source Cíl 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] Řádky tabulky InstallExecuteSequence, které určují nejnovější verzi sady Visual Studio
Akce Podmínka Sequence CA_SetDevenvLatest_2002 DEVENV_EXE_2002 A NE (DEVENV_EXE_2003 NEBO DEVENV_EXE_2005) 410 CA_SetDevenvLatest_2003 DEVENV_EXE_2003 A NE DEVENV_EXE_2005 420 CA_SetDevenvLatest_2005 DEVENV_EXE_2005 430 Vlastnost DEVENV_EXE_LATEST v tabulce Registru balíčku Instalační služby systému Windows můžete použít k zápisu výchozí hodnoty klíče HKEY_CLASSES_ROOTProgIdShellOpenCommand [DEVENV_EXE_LATEST] %1.
Spusťte program sdíleného spouštěče, který může nejlépe zvolit z dostupných verzí balíčku VSPackage.
Vývojáři sady Visual Studio zvolili tento přístup, aby zvládli složité požadavky více formátů řešení a projektů, které jsou výsledkem mnoha verzí sady Visual Studio. V tomto přístupu zaregistrujete program spouštěče jako obslužnou rutinu rozšíření. Spouštěč zkontroluje soubor a rozhodne, která verze sady Visual Studio a váš balíček VSPackage tento konkrétní soubor zvládne. Pokud například uživatel otevře soubor, který naposledy uložil konkrétní verze balíčku VSPackage, může spouštěč spustit balíček VSPackage v odpovídající verzi sady Visual Studio. Kromě toho může uživatel nakonfigurovat spouštěč tak, aby vždy spustil nejnovější verzi. Spouštěč může také vyzvat uživatele k upgradu formátu souboru. Pokud formát souboru obsahuje číslo verze, spouštěč může uživatele informovat, pokud formát souboru pochází z verze, která je pozdější než jedna nebo více nainstalovaných balíčků VSPackage.
Spouštěč by měl být součástí Instalační služby systému Windows, která se sdílí se všemi verzemi balíčku VSPackage. Tento proces zajistí, že je vždy nainstalovaná nejnovější verze a neodebere se, dokud se neodinstalují všechny verze balíčku VSPackage. Tímto způsobem se přidružení souborů a další položky registru spouštěcí komponenty zachovají i v případě, že je odinstalována jedna verze balíčku VSPackage.
Odinstalace a přidružení souborů
Odinstalace balíčku VSPackage, který zapisuje položky registru pro přidružení souborů, odebere přidružení souborů. Proto rozšíření nemá žádné přidružené programy. Instalační služba systému Windows "neobnoví" položky registru, které byly přidány při instalaci balíčku VSPackage. Tady je několik způsobů, jak opravit přidružení souborů uživatele:
Použijte sdílenou komponentu spouštěče, jak bylo popsáno výše.
Požádejte uživatele, aby spustil opravu verze balíčku VSPackage, kterou chce uživatel vlastnit přidružení souboru.
Zadejte samostatný spustitelný program, který přepíše příslušné položky registru.
Zadejte stránku nebo dialogové okno s možnostmi konfigurace, které uživatelům umožňuje zvolit přidružení souborů a uvolnit ztracené přidružení. Požádejte uživatele, aby ho po odinstalaci spustili.