Compartilhar via


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

 

Tabela Directory

Diretório Directory_Parent DefaultDir
TARGETDIR SourceDir
myFolder TARGETDIR myFolder|My Folder

 

Tabela CustomAction

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