Указание порядка самостоятельной регистрации
Обратите внимание, что нельзя указать порядок, в котором установщик регистрирует или отменяет регистрацию саморегистрированных библиотек DLL с помощью действий SelfRegModules и SelfUnRegModules . Эти действия регистрируют все модули, перечисленные в таблице SelfReg. Установщик не регистрирует файлы .exe самостоятельно.
Чтобы указать порядок, в котором установщик регистрирует или отменяет регистрацию модулей, необходимо использовать два настраиваемых действия для каждого модуля. Одно настраиваемое действие для DllRegisterServer и второе для DllUnregisterServer. Затем эти настраиваемые действия должны быть авторизованы в таблице InstallExecuteSequence в точке последовательности, где должна быть зарегистрирована или отменена регистрация библиотеки DLL.
В следующем примере показано, как создать базу данных для планирования самостоятельной регистрации библиотеки DLL в определенной точке последовательности действий.
Таблица файлов (частичная)
File | Компонент_ | FileName | Последовательность |
---|---|---|---|
mydll | myComponent | Mydll.dll | 13 |
Таблица компонентов (частичная)
Компонент | ComponentId | Каталог_ | KeyPath |
---|---|---|---|
myComponent | {a GUID} | myFolder | mydll |
Directory | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
myFolder | TARGETDIR | myFolder| Моя папка |
Действие | Тип | Источник | Назначение |
---|---|---|---|
mydllREG | 3170 | myFolder | "[SystemFolder]msiexec" /y "[#mydll]" |
mydllUNREG | 3170 | myFolder | "[SystemFolder]msiexec" /z "[#mydll]" |
InstallExecuteSequence Table (partial)
Действие | Условие | Последовательность |
---|---|---|
SelfUnregModules | 2200 | |
mydllUNREG | $myComponent=2 | 2201 |
RemoveFiles | 3500 | |
InstallFiles | 4000 | |
SelfRegModules | 6500 | |
mydllREG | >$myComponent 2 | 6501 |