Sdílet prostřednictvím


Vlastní možnosti plánování provádění akcí

Vzhledem k tomu, že vlastní akci lze naplánovat v uživatelském rozhraní i v sekvenčních tabulkách a je možné ji spustit buď ve službě, nebo v procesu klienta, může se vlastní akce spustit několikrát.

Všimněte si, že instalační program:

  • Ve výchozím nastavení provede akce v sekvenční tabulce.
  • Neprovede akci, pokud se pole podmíněného výrazu v sekvenční tabulce vyhodnotí jako Nepravda.
  • Zpracovává tabulku sekvence uživatelského rozhraní v procesu klienta, pokud je úroveň rozhraní interního uživatele nastavena na úplný režim uživatelského rozhraní (viz MsiSetInternalUI popis úrovní uživatelského rozhraní).
  • Je služba ve výchozím nastavení zaregistrovaná při použití systému Windows 2000 a v tomto případě se v instalační službě zpracuje tabulka pořadí spuštění.

Můžete použít následující přepínače k ovládání více okamžitých provedení vlastních akcí. Pokud chcete nastavit možnost, přidejte hodnotu v této tabulce k hodnotě v poli Typ tabulky CustomAction. Žádný z následujících příznaků by neměl být použit s odloženým prováděním vlastních akcí .

(výchozí)

Hexadecimální: 0x00000000

Desetinné číslo: 0

Vždy provádějte. Akce se může spustit dvakrát, pokud jsou přítomné v obou sekvenčních tabulkách.

msidbCustomActionTypeFirstSequence

Hexadecimální: 0x00000100

Desetinné číslo: 256

Pokud jsou v obou sekvenčních tabulkách přítomny, spusťte maximálně jednou. Pokud se sekvence uživatelského rozhraní spustila, vždy přeskočí akci v pořadí spuštění. V sekvenci uživatelského rozhraní není žádný efekt. Akce nemusí být přítomná nebo spuštěná v sekvenci uživatelského rozhraní, aby se v pořadí spuštění přeskočila. Registrace instalační služby není ovlivněna.

msidbCustomActionTypeOncePerProcess

Hexadecimální: 0x00000200

Desetinné číslo: 512

Proveďte jednou na proces, pokud jsou v obou sekvencích tabulek. Přeskočí akci v pořadí spuštění, pokud se sekvence uživatelského rozhraní spustila ve stejném procesu, například obě se spustí v procesu klienta. Slouží k zabránění tomu, aby akce, které upravují stav relace, jako jsou vlastnosti a data databáze, běžely dvakrát.

msidbCustomActionTypeClientRepeat

Šestnáctkové: 0x00000300

Desetinné číslo: 768

Spusťte pouze v případě, že běží na klientovi po spuštění sekvence uživatelského rozhraní. Akce se spustí pouze tehdy, pokud je sekvence provádění spuštěna na klientovi po sekvenci uživatelského rozhraní. Může se použít k poskytnutí buď/anebo logiky, nebo k potlačení zpracování souvisejícího s uživatelským rozhraním, pokud už bylo dokončeno pro relaci klienta.

Všimněte si, že pokud chcete spustit vlastní akci během dvou různých režimů spuštění, vytvořte dvě položky do tabulky CustomAction . Chcete-li mít například vlastní akci, která volá knihovnu dynamického propojení C/C++ (DLL) (typ vlastní akce 1) jak v případě, že je režim MSIRUNMODE_SCHEDULED, tak MSIRUNMODE_ROLLBACK, vložte do tabulky CustomAction dvě položky, které volají stejnou knihovnu DLL, ale mají různé číselné typy. Zahrňte kód, který volá MsiGetMode, aby se určilo, kdy má být spuštěna která vlastní akce.

Referenční příručka vlastních akcí

O vlastních akcích

Použití vlastních akcí