VSPackage-registratie

VSPackages moet Visual Studio adviseren dat ze zijn geïnstalleerd en moeten worden geladen. Dit proces wordt uitgevoerd door informatie in het register te schrijven. Dat is een typische taak van een installatieprogramma.

Opmerking

Het is een geaccepteerde praktijk tijdens het ontwikkelen van VSPackage om zelfregistratie te gebruiken. VsIP-programmapartners (Visual Studio Industry Partner) kunnen hun producten echter niet verzenden met behulp van zelfregistratie als onderdeel van de installatie.

Registervermeldingen in een Windows Installer-pakket worden over het algemeen gemaakt in de registertabel. U kunt ook bestandsextensies registreren in de registertabel. Windows Installer biedt echter ingebouwde ondersteuning via de programmatische id (ProgId), klasse, extensie en werkwoordtabellen. Zie Databasetabellen voor meer informatie.

Zorg ervoor dat uw registervermeldingen zijn gekoppeld aan het onderdeel dat geschikt is voor uw gekozen side-by-side strategie. Registervermeldingen voor een gedeeld bestand moeten bijvoorbeeld worden gekoppeld aan het Windows Installer-onderdeel van dat bestand. Op dezelfde manier moeten registervermeldingen voor een versiespecifiek bestand worden gekoppeld aan het onderdeel van dat bestand. Anders kan het installeren of verwijderen van uw VSPackage voor één versie van Visual Studio uw VSPackage in andere versies verbreken. Zie Ondersteuning voor meerdere versies van Visual Studio voor meer informatie.

Opmerking

De eenvoudigste manier om registratie te beheren, is door dezelfde gegevens in dezelfde bestanden te gebruiken voor zowel de registratie van ontwikkelaars als de installatietijdregistratie. Sommige hulpprogramma's voor het ontwikkelen van installatieprogramma's kunnen bijvoorbeeld bestanden gebruiken in .reg-indeling tijdens de build. Als ontwikkelaars .reg bestanden onderhouden voor hun eigen dagelijkse ontwikkeling en foutopsporing, kunnen deze bestanden automatisch worden opgenomen in het installatieprogramma. Als u registratiegegevens niet automatisch kunt delen, moet u ervoor zorgen dat de kopie van de registratiegegevens van het installatieprogramma actueel is.

Niet-beheerde VSPackages registreren

Onbeheerde VSPackages (inclusief de bestanden die zijn gegenereerd door de Visual Studio-pakketsjabloon) gebruiken ATL-rgs-bestanden om registratiegegevens op te slaan. De rgs-bestandsindeling is specifiek voor ATL en kan over het algemeen niet worden gebruikt as-is door een installatiecreatieprogramma. Registratiegegevens voor het VSPackage-installatieprogramma moeten afzonderlijk worden onderhouden. Ontwikkelaars kunnen bijvoorbeeld bestanden in .reg indeling synchroon houden met .rgs-bestandswijzigingen. De .reg-bestanden kunnen worden samengevoegd met RegEdit voor ontwikkelingswerkzaamheden of worden gebruikt door een installatieprogramma.

Registratie van beheerde VSPackages

Het RegPkg-hulpprogramma leest de registratiekenmerken van een beheerde VSPackage en kan de informatie rechtstreeks naar het register schrijven of .reg-indelingsbestanden schrijven die door een installatieprogramma kunnen worden gebruikt.

Opmerking

Het regPkg-hulpprogramma is niet herdistribueerbaar en kan niet worden gebruikt om een VSPackage te registreren op het systeem van een gebruiker.

Waarom VSPackages niet automatisch registreren tijdens de installatie

Uw VSPackage-installatieprogramma's mogen niet afhankelijk zijn van zelfregistratie. Op het eerste gezicht lijkt het een goed idee om de registerwaarden van een VSPackage alleen in de VSPackage zelf te bewaren. Aangezien ontwikkelaars de registerwaarden nodig hebben die beschikbaar zijn voor hun routinewerk en testen, is het zinvol om te voorkomen dat er een afzonderlijke kopie van de registergegevens in het installatieprogramma wordt onderhouden. Het installatieprogramma kan afhankelijk zijn van de VSPackage zelf om registerwaarden te schrijven.

Hoewel het in theorie goed is, heeft zelfregistratie verschillende fouten waardoor het niet geschikt is voor VSPackage-installatie:

  • Voor het correct ondersteunen van installaties, deïnstallaties, rollbacks van installaties en rollbacks van deïnstallaties moet u vier custom acties maken voor elke beheerde VSPackage die zichzelf registreert door RegPkg aan te roepen.

  • Voor uw benadering van ondersteuning naast elkaar moet u mogelijk vier aangepaste acties maken die RegSvr32 of RegPkg aanroepen voor elke ondersteunde versie van Visual Studio.

  • Een installatie met zelf-geregistreerde modules kan niet veilig worden teruggedraaid omdat er geen manier is om te zien of de zelf-geregistreerde sleutels worden gebruikt door een andere functie of toepassing.

  • Zelf geregistreerde DLL's maken soms een koppeling naar hulp-DLL's die niet aanwezig zijn of de verkeerde versie zijn. Windows Installer kan daarentegen DLL's registreren met behulp van de registertabellen zonder afhankelijk te zijn van de huidige status van het systeem.

  • De toegang tot netwerkresources, zoals typebibliotheken, kan worden geweigerd voor zelfregistratiecode als een component is opgegeven als run-from-source en is vermeld in de SelfReg-tabel. Dit kan ertoe leiden dat de installatie van het onderdeel mislukt tijdens een beheerinstallatie.