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 |
Verzeichnis | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
myFolder | TARGETDIR | myFolder|My Folder |
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 |