Especificando a ordem de registro automático
Observe que você não pode especificar a ordem na qual o instalador registra ou cancela o registro automático de DLLs usando as ações SelfRegModules e SelfUnRegModules. Essas ações registram todos os módulos listados na tabela SelfReg. O instalador não registra automaticamente os arquivos .exe.
Para especificar a ordem na qual o instalador registra ou cancela o registro dos módulos, você deve usar duas ações personalizadas para cada módulo. Uma ação personalizada para DllRegisterServer e uma segunda para DllUnregisterServer. Essas ações personalizadas devem ser criadas na tabela InstallExecuteSequence no ponto da sequência onde quer que a DLL será registrada ou não registrada.
O exemplo a seguir ilustra como criar o banco de dados para agendar o registro automático de uma DLL em um ponto específico na sequência de ações.
Tabela File (parcial)
Arquivo | Component_ | FileName | Sequência |
---|---|---|---|
mydll | myComponent | Mydll.dll | 13 |
Tabela Component (parcial)
Componente | ComponentId | Directory_ | KeyPath |
---|---|---|---|
myComponent | {um GUID} | myFolder | mydll |
Diretório | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
myFolder | TARGETDIR | myFolder|My Folder |
Ação | Tipo | Fonte | Destino |
---|---|---|---|
mydllREG | 3170 | myFolder | "[SystemFolder]msiexec" /y "[#mydll]" |
mydllUNREG | 3170 | myFolder | "[SystemFolder]msiexec" /z "[#mydll]" |
Tabela InstallExecuteSequence (parcial)
Ação | Condição | Sequência |
---|---|---|
SelfUnregModules | 2200 | |
mydllUNREG | $myComponent=2 | 2201 |
RemoveFiles | 3500 | |
InstallFiles | 4000 | |
SelfRegModules | 6500 | |
mydllREG | $myComponent>2 | 6501 |