Dela via


Sekvensera anpassade åtgärder

Anpassade åtgärder schemaläggs i sekvenstabeller på samma sätt som standardåtgärder.

Om du vill schemalägga en anpassad åtgärd i en sekvenstabell

  1. Ange det anpassade åtgärdsnamnet (som är primärnyckeln för tabellen CustomAction) i kolumnen Åtgärd i tabellen Sequence.
  2. Ange den anpassade åtgärdens sekvens i förhållande till de andra åtgärderna i tabellen i kolumnen Sekvens i tabellen Sequence. Mer information om sekvenstabeller finns i Använda en sekvenstabell.
  3. Om du vill hoppa över åtgärden villkorligt anger du ett villkorsuttryck i kolumnen Villkor i tabellen Sequence. Installationsprogrammet hoppar över den här åtgärden om uttrycket utvärderas till FALSE.

Precis som när det gäller standardåtgärder körs anpassade åtgärder som schemaläggs i InstallUISequence eller AdminUISequence endast om det interna användargränssnittet är inställt på fullständig nivå. Användargränssnittsnivån anges med hjälp av funktionen MsiSetInternalUI.

Standard- och anpassade åtgärder som schemalagts i InstallExecuteSequence, AdminExecuteSequenceeller AdvtExecuteSequence tabeller gör inte systemändringar. I stället köar installationsprogrammet körningsposter i ett skript för efterföljande körning under installationstjänsten. Om det inte finns någon installationstjänst körs de åtgärder som schemalagts i dessa tabeller i samma kontext som användargränssnittssekvensen.

Om installationsservern inte är registrerad körs de anpassade åtgärderna på klientsidan. Om servern är registrerad och använder det fullständiga användargränssnittsläget körs de anpassade åtgärderna på serversidan.

Om du använder fullständigt användargränssnitt med servern körs de första åtgärderna före InstallValidate-åtgärden på klienten för att tillåta fullständig interaktion. Körningen växlas sedan till servern som upprepar dessa åtgärder och kör skriptkörningsåtgärderna. Detta följs av en återgång till klienten för de slutliga åtgärderna.

Observera att om en produkt avlägsnas genom att dess främsta funktion anges till 'frånvarande' kanske egenskapen REMOVE inte blir 'ALLA' förrän efter åtgärden InstallValidate. Det innebär att alla anpassade åtgärder som är beroende av REMOVE=ALL måste sekvenseras efter åtgärden InstallValidate. En anpassad åtgärd kan kontrollera REMOVE för att avgöra om en produkt har ställts in att avinstalleras helt.

Anpassade åtgärder som refererar till en installerad fil som källa, till exempel anpassad åtgärdstyp 17 (DLL), anpassad åtgärdstyp 18 (EXE), anpassad åtgärdstyp 21 (JScript) och anpassad åtgärdstyp 22 (VBScript), måste följa följande sekvenseringsbegränsningar.

  • Den anpassade åtgärden måste sekvenseras efter åtgärden CostFinalize så att sökvägen till den refererade filen kan lösas.
  • Om källfilen inte redan är installerad på datorn måste uppskjutna anpassade åtgärder (”in-script”) sekvenseras efter InstallFiles.
  • Om källfilen inte redan är installerad på datorn måste icke-uppskjutna anpassade åtgärder sekvenseras efter åtgärden InstallInitialize.

Följande sekvenseringsbegränsningar gäller för anpassade åtgärder som ändrar eller uppdaterar ett Windows Installer-paket.

  • Om den anpassade åtgärden ändrar paketet, till exempel genom att lägga till rader i en tabell, måste åtgärden sekvenseras innan åtgärden InstallInitialize.
  • Om den anpassade åtgärden gör ändringar som skulle påverka kostnadsberäkning bör den sekvenseras innan CostInitialize åtgärd.
  • Om den anpassade åtgärden ändrar installationstillståndet för funktioner eller komponenter måste den sekvenseras innan åtgärden InstallValidate.