Поделиться через


Указание порядка самостоятельной регистрации

Обратите внимание, что нельзя указать порядок, в котором установщик регистрирует или отменяет регистрацию саморегистрированных библиотек 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| Моя папка

 

Таблица CustomAction

Действие Тип Источник Назначение
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