Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het is belangrijk om uw VSPackage-installatieprogramma te ontwerpen voor flexibiliteit. U moet bijvoorbeeld in de toekomst een beveiligingspatch vrijgeven of u kunt een bedrijfsstrategie wijzigen waarvoor uitgebreide ondersteuning voor versiebeheer naast elkaar is vereist.
In het ondersteunen van meerdere versies van Visual Studio kunt u lezen over de voordelen en problemen van het ondersteunen van side-by-side installaties van Visual Studio met gedeelde of side-by-side installaties van uw VSPackage. Kortom, VSPackages naast elkaar bieden u de meeste flexibiliteit om nieuwe functies van Visual Studio te ondersteunen.
De scenario's die in dit onderwerp worden besproken, zijn niet uw enige keuzes, maar ze worden gepresenteerd als aanbevolen procedures.
Onderdelen, privacy en deling
Uw onderdelen onafhankelijk maken
Nadat u een component hebt geïdentificeerd en ingevuld, een GUID hebt toegewezen, en het component hebt geïmplementeerd, kunt u de samenstelling ervan niet wijzigen. Als u de samenstelling van een onderdeel wijzigt, moet het resulterende onderdeel een nieuw onderdeel met een nieuw GUIDonderdeel zijn. Gezien deze feiten wordt de grootste versie-flexibiliteit geboden door elk onderdeel onafhankelijk en zelfstandig te maken. Zie Het wijzigen van de onderdeelcode en wat gebeurt er als de onderdeelregels zijn verbroken voor meer informatie over regels voor onderdelen.
Gedeelde en persoonlijke resources niet combineren in een onderdeel
Het tellen van verwijzingen vindt plaats op onderdeelniveau. Als u gedeelde en persoonlijke resources in één onderdeel combineert, is het dus onmogelijk om persoonlijke resources, zoals een uitvoerbaar bestand, bij te werken zonder gedeelde resources te overschrijven. In dit scenario ontstaan achterwaartse compatibiliteitsproblemen en wordt u verhinderd om parallelle mogelijkheden te creëren.
Registerwaarden die worden gebruikt om uw VSPackage te registreren met de Visual Studio SDK, moeten bijvoorbeeld worden bewaard in een onderdeel dat gescheiden is van een onderdeel dat wordt gebruikt om uw VSPackage te registreren bij Visual Studio. Gedeelde bestanden of registerwaarden gaan in nog een ander onderdeel.
Scenario 1: Gedeelde VSPackage
In dit scenario wordt een gedeelde VSPackage (één binair bestand dat ondersteuning biedt voor meerdere versies van Visual Studio, geleverd in een Windows Installer-pakket. Registreren bij elke versie van Visual Studio wordt bepaald door door de gebruiker te selecteren functies. Dit betekent ook dat wanneer elk onderdeel wordt toegewezen aan afzonderlijke functies afzonderlijk kan worden geselecteerd voor installatie of verwijdering, waardoor de gebruiker de controle krijgt over de integratie van VSPackage in verschillende versies van Visual Studio. (Zie Windows Installer-functies voor meer informatie over het gebruik van functies in Windows Installer-pakketten.)
Zoals in de afbeelding wordt weergegeven, worden gedeelde onderdelen onderdeel van de Feat_Common-functie, die altijd is geïnstalleerd. Door de Feat_VS2002 en Feat_VS2003 functies zichtbaar te maken, kunnen gebruikers tijdens de installatie kiezen in welke versies van Visual Studio de VSPackage moet worden geïntegreerd. Gebruikers kunnen ook de onderhoudsmodus van Windows Installer gebruiken om functies toe te voegen of te verwijderen. In dit geval worden de VSPackage-registratiegegevens uit verschillende versies van Visual Studio toegevoegd of verwijderd.
Opmerking
Als u de weergavekolom van een functie instelt op 0, wordt deze verborgen. Een kolomwaarde met een laag niveau, zoals 1, zorgt ervoor dat deze altijd wordt geïnstalleerd. Zie de eigenschap INSTALLLEVEL en de functietabel voor meer informatie.
Scenario 2: Gedeelde VSPackage-update
In dit scenario wordt een bijgewerkte versie van het VSPackage-installatieprogramma in scenario 1 verzonden. Ter discussie voegt de update ondersteuning toe voor Visual Studio, maar het kan ook een eenvoudiger beveiligingspatch of servicepack voor het oplossen van fouten zijn. De regels van Windows Installer voor het installeren van nieuwere onderdelen vereisen dat ongewijzigde onderdelen die al op het systeem aanwezig zijn, niet opnieuw worden gecopieerd. In dit geval overschrijft een systeem met versie 1.0 dat al aanwezig is het bijgewerkte onderdeel Comp_MyVSPackage.dll en kunnen gebruikers ervoor kiezen om de nieuwe functie toe te voegen Feat_VS2005 met het bijbehorende onderdeel Comp_VS2005_Reg.
Waarschuwing
Wanneer een VSPackage wordt gedeeld tussen meerdere versies van Visual Studio, is het essentieel dat volgende versies van VSPackage achterwaartse compatibiliteit behouden met eerdere versies van Visual Studio. Als u compatibiliteit met eerdere versies niet kunt behouden, moet u naast elkaar, persoonlijke VSPackages gebruiken. Zie Ondersteuning voor meerdere versies van Visual Studio voor meer informatie.
In dit scenario wordt een nieuw VSPackage-installatieprogramma gepresenteerd, waarbij gebruik wordt gemaakt van de ondersteuning van Windows Installer voor kleine upgrades. Gebruikers installeren gewoon versie 1.1 en upgraden versie 1.0. Het is echter niet nodig om versie 1.0 op het systeem te hebben. Hetzelfde installatieprogramma installeert versie 1.1 op een systeem zonder versie 1.0. Het voordeel van het bieden van kleine upgrades op deze manier is dat het niet nodig is om het ontwikkelen van een upgrade-installatieprogramma en een volledig productinstallatieprogramma te doorlopen. Eén installatieprogramma voert beide taken uit. Een beveiligingsoplossing of servicepack kan in plaats daarvan gebruikmaken van Windows Installer-patches. Zie Patching en upgrades voor meer informatie.
Scenario 3: Side-by-Side VSPackage
In dit scenario worden twee VSPackage-installatieprogramma's weergegeven: één voor elke versie van Visual Studio .NET 2003 en Visual Studio. Elk installatieprogramma installeert een side-by-side of privé VSPackage (een die speciaal is ontwikkeld en geïnstalleerd voor een bepaalde versie van Visual Studio). Elke VSPackage bevindt zich in zijn eigen component. Daarom kan elk afzonderlijk worden onderhouden met patches of onderhoudsreleases. Omdat de VSPackage-DLL nu versiespecifiek is, is het veilig om de registratiegegevens op te nemen in hetzelfde onderdeel als het DLL-bestand.
Elk installatieprogramma bevat ook code die wordt gedeeld tussen de twee installatieprogramma's. Als de gedeelde code naar een gebruikelijke locatie is geïnstalleerd, wordt de gedeelde code bij installatie van beide .msi-bestanden slechts eenmaal geïnstalleerd. Met het tweede installatieprogramma wordt alleen maar een verwijzingsaantal voor het onderdeel verhoogd. Het aantal verwijzingen zorgt ervoor dat als een van de VSPackages wordt verwijderd, de gedeelde code voor de andere VSPackage blijft bestaan. Als de tweede VSPackage ook wordt verwijderd, wordt de gedeelde code verwijderd.
Scenario 4: VSPackage-update naast elkaar
In dit scenario heeft uw VSPackage voor Visual Studio te maken gehad met een beveiligingsprobleem en moet u een update uitvoeren. Net als in scenario 2 kunt u een nieuw .msi-bestand maken dat een bestaande installatie bijwerken om de beveiligingsoplossing op te nemen, en nieuwe installaties implementeren met de beveiligingsoplossing die al aanwezig is.
In dit geval is VSPackage een beheerde VSPackage die is geïnstalleerd in de GLOBAL Assembly Cache (GAC). Wanneer u deze herbouwt om de beveiligingsoplossing op te nemen, moet u het revisienummergedeelte van het versienummer van de assembly wijzigen. De registratiegegevens voor het nieuwe assemblyversienummer overschrijven de vorige versie, waardoor Visual Studio de vaste assembly laadt.
Zie Implementatie vereenvoudigen en DLL-hel oplossen met .NET Framework voor meer informatie over de implementatie van assembly's naast elkaar.