Registrace balíčku VSPackage

Balíčky VSPackage musí radit sadě Visual Studio, že jsou nainstalované a měly by být načteny. Tento proces se provádí zápisem informací v registru. To je typická úloha instalačního programu.

Poznámka:

Je to akceptovaný postup při vývoji balíčku VSPackage k použití samoobslužné registrace. Partneři programu Visual Studio Industry Partner (VSIP) ale nemůžou v rámci instalace dodávat své produkty pomocí samoobslužné registrace.

Položky registru v balíčku Instalační služby systému Windows jsou obecně provedeny v tabulce Registru. Přípony souborů můžete také zaregistrovat v tabulce Registr. Instalační služba systému Windows však poskytuje integrovanou podporu prostřednictvím programového identifikátoru (ProgId), třídy, rozšíření a slovesných tabulek. Další informace naleznete v tématu Databázové tabulky.

Ujistěte se, že jsou položky registru přidruženy ke komponentě, která je vhodná pro vaši zvolenou strategii vedle sebe. Například položky registru pro sdílený soubor by měly být přidruženy k této součásti Instalační služba systému Windows. Podobně by položky registru pro soubor specifické pro verzi měly být přidruženy ke komponentě daného souboru. Jinak může instalace nebo odinstalace balíčku VSPackage pro jednu verzi sady Visual Studio přerušit balíček VSPackage v jiných verzích. Další informace naleznete v tématu Podpora více verzí sady Visual Studio.

Poznámka:

Nejjednodušší způsob, jak spravovat registraci, je použít stejná data ve stejných souborech pro registraci vývojáře i registraci v době instalace. Některé instalační nástroje pro vývoj můžou například v době sestavení využívat soubor ve formátu .reg.reg.. Pokud vývojáři udržují soubory .reg pro vlastní každodenní vývoj a ladění, mohou být tyto soubory zahrnuté do instalačního programu automaticky. Pokud nemůžete automaticky sdílet registrační data, musíte zajistit, aby kopie registračních dat instalačního programu byla aktuální.

Registrace nespravovaných balíčků VSPackage

Nespravované balíčky VSPackage (včetně balíčků vygenerovaných šablonou balíčku sady Visual Studio) používají soubory ATL ve stylu .rgs k ukládání registračních informací. Formát souboru .rgs je specifický pro ATL a nelze ho obecně využívat pomocí nástroje pro tvorbu instalace. Registrační informace pro instalační program VSPackage musí být udržovány samostatně. Vývojáři můžou například uchovávat soubory ve formátu .reg v synchronizaci se změnami souboru .rgs. Soubory .reg lze sloučit s RegEdit pro vývojovou práci nebo využívat instalační program.

Registrace spravovaných balíčků VSPackage

Nástroj RegPkg přečte atributy registrace ze spravovaného balíčku VSPackage a může buď zapsat informace přímo do registru, nebo zapisovat soubory formátu .reg-format, které může instalační program využívat.

Poznámka:

Nástroj RegPkg není redistribuovatelný a nelze jej použít k registraci balíčku VSPackage v systému uživatele.

Proč by se balíčky VSPackages neměly při instalaci registrovat sami

Instalační programy balíčku VSPackage by se neměly spoléhat na samoobslužnou registraci. Na první pohled se zdá, že zachování hodnot registru VSPackage pouze v samotném balíčku VSPackage vypadá jako dobrý nápad. Vzhledem k tomu, že vývojáři potřebují hodnoty registru, které jsou k dispozici pro běžnou práci a testování, je vhodné se vyhnout zachování samostatné kopie dat registru v instalačním programu. Instalační program může při zápisu hodnot registru spoléhat na samotný balíček VSPackage.

I když je v teorii dobré, samoobslužná registrace má několik vad, díky kterým není vhodná pro instalaci balíčku VSPackage:

  • Správná podpora instalace, odinstalace, vrácení instalace zpět a vrácení zpět odinstalace vyžaduje, abyste vytvořili čtyři vlastní akce pro každou spravovanou sadu VSPackage, která se registruje sama voláním RegPkg.

  • Váš přístup k souběžné podpoře může vyžadovat, abyste vytvořili čtyři vlastní akce, které vyvolávají RegSvr32 nebo RegPkg pro každou podporovanou verzi sady Visual Studio.

  • Instalace s moduly registrovanými svým držitelem se nedá bezpečně vrátit zpět, protože neexistuje způsob, jak zjistit, jestli jsou klíče zaregistrované svým držitelem používány jinou funkcí nebo aplikací.

  • Knihovny DLL zaregistrované v místním registru někdy odkazují na pomocné knihovny DLL, které nejsou k dispozici nebo jsou nesprávné verze. Instalační služba systému Windows naopak může zaregistrovat knihovny DLL pomocí tabulek registru bez závislosti na aktuálním stavu systému.

  • Kód samoobslužné registrace může být odepřen přístup k síťovým prostředkům, jako jsou knihovny typů, pokud je komponenta určená jako spustit ze zdroje a je uvedená v tabulce SelfReg. To může způsobit selhání instalace komponenty během instalace pro správu.