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


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

Обратите внимание, что нельзя указать порядок, в котором установщик регистрирует или отменяет регистрацию библиотек DLL с помощью действий SelfRegModules и SelfUnRegModules. Эти действия регистрируют все модули, перечисленные в таблице SelfReg. Установщик не регистрирует файлы .exe самостоятельно.

Чтобы указать порядок, в котором инсталлятор регистрирует или отменяет регистрацию модулей, необходимо использовать два пользовательских действия для каждого модуля. Одно настраиваемое действие для DllRegisterServer и второй для DllUnregisterServer. Затем эти пользовательские действия необходимо разместить в таблице InstallExecuteSequence в той точке последовательности, где библиотека DLL должна быть зарегистрирована или разрегистрирована.

В следующем примере показано, как создать базу данных для планирования самостоятельной регистрации библиотеки DLL в определенной точке последовательности действий.

Таблицу файлов (частично)

Файл Компонент_ Имя файла Последовательность
mydll мойКомпонент Mydll.dll 13

 

таблица компонентов (частичная)

Компонент ComponentId Каталог_ KeyPath
мойКомпонент {GUID} myFolder mydll

 

таблица директории

Каталог Каталог_Родитель DefaultDir
TARGETDIR SourceDir
myFolder TARGETDIR myFolder |Моя папка

 

таблица "CustomAction"

Действие Тип Источник Цель
mydllREG 3170 myFolder "[SystemFolder]msiexec" /y "[#mydll]"
mydllUNREG 3170 myFolder "[SystemFolder]msiexec" /z "[#mydll]"

 

Таблица InstallExecuteSequence (частично)

Действие Состояние Последовательность
SelfUnregModules 2200
mydllUNREG $myComponent=2 2201
Удалить файлы 3500
InstallFiles 4000
SelfRegModules 6500
mydllREG $myComponent>2 6501