Aangepaste acties terugdraaien
Wanneer het installatiescript wordt verwerkt, wordt er tegelijkertijd een terugdraaiscript gegenereerd. Naast het terugdraaiscript slaat het installatieprogramma een kopie op van elk bestand dat tijdens de installatie wordt verwijderd. Deze bestanden worden bewaard in een verborgen systeemmap. Zodra de installatie is voltooid, worden het terugdraaiscript en de opgeslagen bestanden verwijderd. Als een installatie mislukt, probeert het installatieprogramma de wijzigingen die zijn aangebracht tijdens de installatie terug te draaien en de oorspronkelijke status van de computer te herstellen.
Hoewel aangepaste acties die systeembewerkingen plannen door rijen in de databasetabel in te voegen, worden omgekeerd door een terugdraaiactie van de installatie, aangepaste acties die het systeem rechtstreeks wijzigen of die opdrachten uitgeven aan andere systeemservices, kunnen niet altijd worden omgekeerd door een terugdraaiactie. Een aangepaste actie voor terugdraaien is een actie die het installatieprogramma alleen uitvoert tijdens het terugdraaien van de installatie en het doel ervan is om een aangepaste actie te omkeren die wijzigingen heeft aangebracht in het systeem.
Een aangepaste actie voor terugdraaien is een type aangepaste aangepaste actie voor uitvoering, omdat de uitvoering ervan wordt uitgesteld wanneer deze wordt aangeroepen tijdens de installatiereeks. Het verschilt van een reguliere aangepaste actie omdat deze alleen wordt uitgevoerd tijdens een terugdraaibewerking. Een aangepaste actie voor terugdraaien moet altijd voorafgaan aan de uitgestelde aangepaste actie die wordt teruggedraaid in de actiereeks. Een aangepaste actie voor terugdraaien moet ook worden verwerkt wanneer de uitgestelde aangepaste actie midden in de uitvoering wordt onderbroken. Als de gebruiker bijvoorbeeld op de knop Annuleren moest drukken terwijl de aangepaste actie werd uitgevoerd.
Houd er rekening mee dat het terugdraaien van aangepaste acties niet asynchroon kan worden uitgevoerd. Zie synchrone en asynchrone aangepaste acties.
De aanvulling op een aangepaste actie voor terugdraaien is een aangepaste actie doorvoeren. Het installatieprogramma voert een aangepaste doorvoeringsactie uit tijdens de installatiereeks, kopieert de aangepaste actie naar het terugdraaiscript, maar voert de actie niet uit tijdens het terugdraaien.
Een aangepaste actie voor terugdraaien kan mogelijk niet alle wijzigingen verwijderen die zijn aangebracht door aangepaste acties doorvoeren. Hoewel het installatieprogramma zowel terugdraaien als doorvoeren van aangepaste acties naar het terugdraaiscript schrijft, worden aangepaste acties alleen uitgevoerd nadat het installatiescript is verwerkt. Aangepaste acties doorvoeren zijn de eerste acties die moeten worden uitgevoerd in het terugdraaiscript. Als een aangepaste doorvoeractie mislukt, start het installatieprogramma terugdraaibewerking, maar kan deze bewerkingen alleen terugdraaien die al naar het terugdraaiscript zijn geschreven. Dit betekent dat, afhankelijk van de aangepaste actie voor doorvoeren, een terugdraaiactie de wijzigingen die door de actie zijn aangebracht, mogelijk niet ongedaan kan maken. U kunt fouten in het doorvoeren van aangepaste acties negeren door de aangepaste actie te ontwerpen om retourcodes te negeren.
Wanneer het installatieprogramma een aangepaste actie voor terugdraaien uitvoert, wordt de enige modusparameter die wordt ingesteld, MSIRUNMODE_ROLLBACK. Zie MsiGetMode- voor een beschrijving van de parameters voor de uitvoeringsmodus.
Een aangepaste actie voor terugdraaien kan worden opgegeven door een optievlag toe te voegen aan het veld Type van de CustomAction-tabel. Zie aangepaste actie In-Script uitvoeringsopties voor de optievlag die een aangepaste actie voor terugdraaien aanwijzen.
Aangepaste acties terugdraaien en doorvoeren worden niet uitgevoerd wanneer terugdraaien is uitgeschakeld. Als een auteur van een pakket deze soorten aangepaste acties vereist voor de juiste installatie, moet deze de eigenschap RollbackDisabled gebruiken in een voorwaarde die voorkomt dat de installatie wordt voortgezet wanneer terugdraaien is uitgeschakeld. Zie Terugdraaiinstallatie (Windows Installer)voor meer informatie over het uitschakelen van terugdraaien.