Freigeben über


Angeben der Reihenfolge der Selbstregistrierung

Beachten Sie, dass Sie mit den Aktionen SelfRegModules und SelfUnRegModules nicht die Reihenfolge festlegen können, in der der Installer sich selbst registrierende DLL-Dateien registriert oder deren Registrierung aufhebt. Mit diesen Aktionen werden alle in der SelfReg-Tabelle aufgeführten Module registriert. Der Installer registriert EXE-Dateien nicht selbst.

Um die Reihenfolge anzugeben, in der der Installer Module registriert oder deren Registrierung aufhebt, sind für jedes Modul zwei benutzerdefinierte Aktionen erforderlich. eine benutzerdefinierte Aktion für DllRegisterServer und eine zweite für DllUnregisterServer. Diese benutzerdefinierten Aktionen müssen dann in der InstallExecuteSequence-Tabelle an der Stelle in der Sequenz erstellt werden, an der die DLL registriert bzw. ihre Registrierung aufgehoben werden soll.

Im folgenden Beispiel wird veranschaulicht, wie die Datenbank erstellt wird, um die Selbstregistrierung einer DLL an einer bestimmten Stelle in der Aktionssequenz zu planen.

File-Tabelle (Auszug)

Datei Component_ FileName Sequenz
mydll myComponent Mydll.dll 13

 

Component-Tabelle (Auszug)

Komponente ComponentId Directory_ KeyPath
myComponent {a GUID} myFolder mydll

 

Directory Table

Verzeichnis Directory_Parent DefaultDir
TARGETDIR SourceDir
myFolder TARGETDIR myFolder|My Folder

 

CustomAction-Tabelle

Aktion type `Source` Ziel
mydllREG 3170 myFolder "[SystemFolder]msiexec" /y "[#mydll]"
mydllUNREG 3170 myFolder "[SystemFolder]msiexec" /z "[#mydll]"

 

InstallExecuteSequence-Tabelle (Auszug)

Aktion Bedingung Sequenz
SelfUnregModules 2200
mydllUNREG $myComponent=2 2201
RemoveFiles 3500
InstallFiles 4000
SelfRegModules 6500
mydllREG $myComponent>2 6501