Dela via


Hämta kontextinformation för anpassade åtgärder för fördröjd exekvering

Eftersom installationsskriptet kan köras utanför installationssessionen där det skrevs kanske sessionen inte längre finns under körningen av installationsskriptet. I det här fallet är det ursprungliga sessionshandtaget och egenskaperna som angavs under installationssekvensen inte tillgängliga för en anpassad åtgärd för uppskjuten körning. Alla funktioner som kräver ett sessionshandtag är begränsade till några metoder som kan hämta kontextinformation, annars måste egenskaper som behövs vid skriptkörning skrivas in i installationsskriptet. Till exempel skickar uppskjutna anpassade åtgärder som anropar DLL:er (dynamic-link libraries) ett handtag som bara kan användas för att hämta en mycket begränsad mängd information. Funktioner som inte kräver ett sessionshandtag kan nås från en uppskjuten anpassad åtgärd.

Anpassade åtgärder för uppskjuten körning är begränsade till att endast anropa följande funktioner som kräver ett handtag.

Funktion Beskrivning
MsiGetProperty Stöder en begränsad uppsättning egenskaper när den används med anpassade åtgärder för uppskjuten körning: egenskapen CustomActionData, egenskapen ProductCode och egenskapen UserSID.Ange åtagna anpassade åtgärder kan inte använda funktionen MsiGetProperty för att erhålla egenskapen ProductCode. Genomföra anpassade åtgärder kan använda egenskapen CustomActionData för att hämta produktkoden.
MsiFormatRecord sv-SE: Stödjer en begränsad uppsättning egenskaper vid användning med uppskjutna körningsanpassade åtgärder: egenskaperna CustomActionData och ProductCode.
MsiGetMode När det anropas från anpassade åtgärder för uppskjuten körning, begå anpassade åtgärder, eller återställ anpassade åtgärder, returnerar MsiGetMode sant eller falskt när det uppmanas att kontrollera lägesparametrarna MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT, eller MSIRUNMODE_ROLLBACK. Begäranden om att kontrollera andra körningslägesparametrar från en anpassad åtgärd för uppskjuten, incheckning eller återställning returnerar False.
MsiGetLanguage Det numeriska språk-ID:t för den aktuella produkten.Utföra anpassade åtgärder kan inte använda MsiGetLanguage-funktionen. Genomföra anpassade åtgärder kan använda egenskapen CustomActionData för att hämta det numeriska språk-ID:t.
MsiProcessMessage Bearbetar fel- eller förloppsmeddelanden från den anpassade åtgärden.

 

En anpassad åtgärd som skrivs i JScript eller VBScript kräver att objektet Session installeras. Det här är av typen sessionsobjekt och installationsprogrammet kopplar det till skriptet med namnet "Session". Eftersom session-objektet kanske inte finns under en installationsåterställning, måste en uppskjuten anpassad åtgärd som skrivits i skriptet använda någon av följande metoder eller egenskaper för Session-objektet för att hämta kontexten.

Namn Beskrivning
egenskap läge Returnerar True endast för MSIRUNMODE_SCHEDULED.
Egenskap (Session-objekt) Returnerar egenskapen CustomActionData, egenskapen ProductCode eller egenskapen UserSID.
språkegenskap (sessionsobjekt) Returnerar numeriskt språk-ID för installationssessionen.
meddelandemetod Anropas att hantera fel och framsteg.
Installationsattribut Returnerar det överordnade objektet, som används för funktioner som inte är sessionsfunktioner, till exempel registeråtkomst och konfigurationshantering för installationsprogram.

 

Egenskapsvärden som anges när installationssekvensen bearbetas till skriptet kan vara otillgängliga vid tidpunkten för skriptkörningen. Endast följande begränsade uppsättning egenskaper är alltid tillgängliga för anpassade åtgärder under skriptkörningen.

Egenskapsnamn Beskrivning
CustomActionData Värdet vid den tidpunkt den anpassade åtgärden bearbetas i sekvenstabellen. Egenskapen CustomActionData är endast tillgänglig för uppskjutna anpassade åtgärder. Direkta anpassade åtgärder har inte åtkomst till den här egenskapen.
ProductCode Unik kod för produkten, en GUID sträng.
UserSID Sätts av installationsprogrammet till användarens säkerhetsidentifierare (SID).

 

Om andra egenskapsdata krävs av den anpassade åtgärden för uppskjuten körning måste deras värden lagras i installationsskriptet. Detta kan göras med hjälp av en andra anpassad åtgärd.

För att skriva värdet av en egenskap i installationsskriptet för användning under en uppsjuten anpassad åtgärd

  1. Infoga en liten anpassad åtgärd i installationssekvensen som sätter den aktuella egenskapen till en egenskap med samma namn som den anpassade åtgärden för uppskjuten körning. Om den primära nyckeln för den anpassade åtgärden för uppskjuten körning till exempel är "MyAction" anger du en egenskap med namnet "MyAction" till egenskapen X som du behöver hämta. Du måste ange egenskapen "MyAction" i installationssekvensen innan den anpassade åtgärden "MyAction". Även om alla typer av anpassade åtgärder kan ange kontextdata är den enklaste metoden att använda en anpassad åtgärd för egenskapstilldelning (till exempel anpassad åtgärdstyp 51).
  2. När installationssekvensen bearbetas skriver installationsprogrammet värdet för egenskap X i körningsskriptet som värdet för egenskapen CustomActionData.

Om egenskaper

Använda egenskaper

egenskapsreferens