Gelijktijdige installaties
Gelijktijdige installaties, ook wel Geneste installaties genoemd, is een afgeschafte functie van Windows Installer. Toepassingen die zijn geïnstalleerd met gelijktijdige installaties, kunnen uiteindelijk mislukken omdat ze moeilijk zijn voor klanten om correct te kunnen werken. Gebruik geen gelijktijdige installaties om producten te installeren die bedoeld zijn om voor het publiek te worden vrijgegeven. Gelijktijdige installaties kunnen beperkte toepasselijkheid hebben in gecontroleerde bedrijfsomgevingen wanneer ze worden gebruikt voor het installeren van toepassingen die niet zijn bedoeld voor openbare release. De documentatie over gelijktijdige installaties wordt verstrekt voor pakketauteurs die gelijktijdige installaties willen gebruiken met toepassingen die niet voor openbare distributie zijn.
Met een gelijktijdige installatieactie wordt een ander Windows Installer-pakket geïnstalleerd tijdens een installatie die momenteel wordt uitgevoerd. Een gelijktijdige installatie wordt toegevoegd aan een pakket door een gelijktijdige installatieactie te maken in de CustomAction-tabel en deze aangepaste actie in de reekstabellen te plannen. Het veld Doel van de tabel CustomAction bevat een reeks instellingen voor openbare eigenschappen die door de gelijktijdige installatie worden gebruikt. Het veld Bron van de CustomAction-tabel identificeert het gelijktijdige pakket. Een gelijktijdige installatieactie kan alleen een toepassing die is geïnstalleerd door het installatiepakket van de huidige toepassing opnieuw installeren of verwijderen.
Het type gelijktijdige installatieactie wordt opgegeven in het veld Type van de tabel CustomAction. Afhankelijk van het aangepaste actietype kan het pakket voor de gelijktijdige toepassing zich in een subopslag van het hoofdpakket bevinden, als een bestand op een locatie die is opgegeven door een eigenschap of als een geadverteerde toepassing op de computer van de gebruiker. Met de volgende typen aangepaste acties wordt een gelijktijdige installatie uitgevoerd.
Aangepast actietype | Beschrijving |
---|---|
aangepaste actietype 7 | Gelijktijdige installatie van een product dat zich in het installatiepakket bevindt. |
aangepast actietype 23 | Gelijktijdige installatie van een installatiepakket binnen de huidige bronstructuur. |
aangepast actietype 39 | Gelijktijdige installatie van een geadverteerd installatiepakket. |
Een gelijktijdige installatie deelt dezelfde gebruikersinterface en logboekregistratie-instellingen als de hoofdinstallatie.
Gelijktijdige installatieacties moeten worden geplaatst tussen de actie InstallInitialize en InstallFinalize-actie van de actiereeks van de hoofdinstallatie. Na het terugdraaien van de hoofdinstallatie wordt de gelijktijdige installatie ook teruggedraaid. Het gebruik van uitgestelde uitvoering met gelijktijdige installatieacties is overbodig omdat het installatieprogramma informatie over terugdraaien combineert van de gelijktijdige en hoofdinstallaties. Alle wijzigingen worden teruggedraaid bij een terugdraaiinstallatie.
De retourwaarden voor gelijktijdige installatieacties zijn hetzelfde als voor andere aangepaste acties. Zie aangepaste actie retourwaarden.
Standaardacties of aangepaste acties die een automatisch opnieuw opstarten van het systeem opgeven, of de gebruiker vragen om opnieuw op te starten, kunnen ook opnieuw opstarten of aanvragen uitvoeren vanuit een gelijktijdige installatie.
Zodra het installatieprogramma een gelijktijdige installatie start, worden alle andere installaties vergrendeld totdat de gelijktijdige installatie is voltooid en voordat de hoofdinstallatie wordt voortgezet. Het installatieprogramma kan alleen gelijktijdige installaties uitvoeren als synchrone aangepaste acties. Zie synchrone en asynchrone aangepaste acties. De optievlaggen die worden beschreven in aangepaste opties voor het retourneren van acties moeten worden ingesteld op geen (+0) of msidbCustomActionTypeContinue (+64).
Een gelijktijdige installatieactie kan een toepassing installeren die lokaal moet worden uitgevoerd, vanaf de bron worden uitgevoerd, opnieuw moeten worden geïnstalleerd of op dezelfde manier worden verwijderd als bij het gebruik van MsiInstallProduct- voor een reguliere installatie. Als u het type installatie wilt opgeven, geeft u de ADDLOCAL-, ADDSOURCE-, OPNIEUW INSTALLERENof eigenschap VERWIJDEREN door aan de gelijktijdige installatieactie.
Gelijktijdige installatieacties kunnen worden gemaakt in paren, één actie die wordt gebruikt voor installatie en de andere actie die wordt gebruikt voor het verwijderen van de gelijktijdige installatie. Een aangepast actietype 7 of aangepast actietype 23 wordt meestal gebruikt om te installeren. Een aangepast actietype 39 wordt meestal gebruikt om de gelijktijdige installatie te verwijderen wanneer het bovenliggende product wordt verwijderd. De record voor de aangepaste actie voor verwijderen in de CustomAction-tabel kan de productcode-GUID in het veld Bron en "REMOVE=ALL" in het veld Doel hebben. De twee aangepaste acties moeten worden gemaakt in de actiereekstabel met wederzijds exclusieve voorwaarden. De aangepaste actie waarmee het product wordt geïnstalleerd, kan bijvoorbeeld 'NIET geïnstalleerd' zijn in het veld Voorwaarde en de aangepaste actie verwijdert de gelijktijdige installatie kan REMOVE="ALL" hebben in het veld Voorwaarde.
Er is geen methode voor het uitvoeren van query's op een pakket voor de kosten. Dit maakt de kosten van gelijktijdige installaties moeilijk. Rijen moeten worden toegevoegd aan de ReserveCost-tabel om de mappen en slechtste kosten aan te geven van het onderdeel dat is gekoppeld aan de gelijktijdige installatie.
De enige opties voor het verwerken van aangepaste acties voor retournering beschikbaar zijn voor gelijktijdige installatieacties, zijn geen (+0) of msidbCustomActionTypeContinue (+64).
Houd er rekening mee dat een bovenliggende installatie geen eigen pakket kan aanroepen als een gelijktijdige installatieactie.
Houd er rekening mee dat als een installatie per machine een gelijktijdige installatie per gebruiker probeert uit te voeren, het installatieprogramma de bovenliggende installatie standaard per gebruiker registreert. Dit kan ertoe leiden dat het installatieprogramma de toepassing onjuist verwijdert omdat het installatieprogramma probeert de toepassing per machine te verwijderen wanneer deze daadwerkelijk is geregistreerd als per gebruiker. Als u de status van een gelijktijdige installatie wilt afdwingen om de status van de bovenliggende installatie bij te houden, voert u ALLUSERS="[ALLUSERS]" in de kolom Doel van de CustomAction-tabelin. In dit geval is de gelijktijdige installatie per machine als het bovenliggende item per machine is en de gelijktijdige installatie per gebruiker als het bovenliggende item per gebruiker is.
Ontwikkelaars moeten rekening houden met de volgende waarschuwingen bij het ontwerpen van gelijktijdige installaties.
- Gelijktijdige installaties kunnen geen onderdelen delen.
- Een beheerinstallatie kan ook geen gelijktijdige installatie bevatten.
- Patchen en upgraden werkt mogelijk niet met gelijktijdige installaties.
- Het installatieprogramma kost een gelijktijdige installatie mogelijk niet correct.
- Geïntegreerde voortgangsbalken kunnen niet worden gebruikt met gelijktijdige installaties.
- Resources die moeten worden geadverteerd, kunnen niet worden geïnstalleerd door de gelijktijdige installatie.
- Een pakket dat een gelijktijdige installatie van een toepassing uitvoert, moet ook de gelijktijdige toepassing verwijderen wanneer het bovenliggende product wordt verwijderd.
Als u wilt voorkomen dat een pakket ooit wordt geïnstalleerd als een gelijktijdige installatie, voegt u een van de volgende voorwaardelijke instructies toe aan de tabel LaunchCondition. Dit voorkomt dat het pakket ooit wordt geïnstalleerd door een gelijktijdige installatieactie die wordt uitgevoerd door een andere installatie. Hiermee voorkomt u niet dat het pakket wordt verwijderd door de actie RemoveExistingProducts. Zie ook de eigenschap ParentOriginalDatabase en de eigenschap ParentProductCode.
"Not ParentProductCode"
"Not ParentOriginalDatabase"