Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A seguir descreve como criar um pacote do Windows Installer para instalar um assembly Win32. O pacote instala um assembly lado a lado na pasta Winsxs para o uso compartilhado do aplicativo. Depois de instalar o pacote, o assembly partilhado fica disponível globalmente para qualquer aplicativo que especifique uma dependência deste em um arquivo de manifesto do assembly. O instalador não registra globalmente a assemblagem lado a lado no sistema.
Note que pode instalar assemblies compartilhados lado a lado usando os módulos de mesclagem .
Antes de continuar, você deve entender como criar um pacote do Windows Installer sem assemblies. Para obter um exemplo de como criar uma instalação simples, consulte um exemplo de instalação.
Para instalar um assembly compartilhado lado a lado
- Defina um componente do Windows Installer que inclua o assembly Win32. Este componente pode conter outros recursos que devem ser sempre instalados ou removidos com a montagem. Todos os outros componentes da aplicação podem ser criados tal como para uma instalação sem assemblies. Adicione uma linha à tabela de componente para o componente que contém a montagem Win32. Insira um GUID válido do Windows Installer para esse código de componente. Não use o arquivo de manifesto como o caminho de chave para este componente.
- Adicione uma linha à tabela FeatureComponents vinculando o componente a um recurso do Windows Installer. Para obter informações, veja Componentes e funcionalidades. Um recurso do Windows Installer deve ser uma parte da funcionalidade do aplicativo que é reconhecível por um usuário. A montagem é ativada quando esse recurso é selecionado por um usuário ou ativado por falha de um aplicativo. Se o conjunto definir uma funcionalidade adicional, insira uma linha adicional na tabela Funcionalidade para os atributos dessa funcionalidade. Esta etapa não é necessária ao criar um módulo de mesclagem.
- Para assemblies lado-a-lado, as informações de vinculação e ativação, como classes COM, interfaces e bibliotecas de tipos, são armazenadas em arquivos de manifesto em vez do registo. Os assemblies partilhados armazenam essas informações num manifesto de assembly. Em sistemas que suportam montagens lado a lado, o instalador ignora o processamento de qualquer informação sobre o componente inserido na tabela Extension, tabela Verb, tabela TypeLib, tabela MIME, tabela Class, tabela ProgIde tabela AppId. Informações de vinculação e ativação podem ser inseridas nessas tabelas para uso por sistemas que não suportam o compartilhamento de conjuntos de forma paralela.
- A instalação lado a lado não registra globalmente o assembly, o instalador ignora o auto-registro do componente se alguma informação de auto-registro tiver sido inserida na tabela SelfReg. As informações de auto-registro podem ser inseridas na tabela SelfReg para auto-registro do componente em sistemas que não suportam compartilhamento de montagem lado a lado.
- Adicione quaisquer outras informações do registo, exclusivas da vinculação e ativação ou auto-registo do componente, à tabela de Registo , tabela RemoveRegistry e tabela Ambiente .
- Como este é um assembly compartilhado, não gere um arquivo .local. Não inclua informações para este componente na tabela IsolatedComponent. O instalador ignora a tabela IsolatedComponent para este componente em sistemas operacionais que suportam compartilhamento lado a lado. Adicione informações à tabela IsolatedComponent se desejar que a assemblagem seja privada em sistemas que suportam arquivos .local.
- Para habilitar o compartilhamento lado a lado, o assembly Win32 deve ser instalado na pasta Winsxs. Isso é feito deixando a coluna File_Application na tabela MsiAssembly nula para a assemblagem. Isso diz ao instalador para instalar o assembly na pasta WinSxS, em vez de na pasta do componente. Adicione uma linha à tabela MsiAssembly para o componente que contém o assembly Win32. Insira um valor de 1 no campo Atributos da tabela MsiAssembly para especificar que este é um assembly Win32. Para um assembly compartilhado, deixe o campo File_Application vazio. Adicione o de ação MsiPublishAssemblies à tabela InstallExecuteSequence ou tabela AdvtExecuteSequence. Adicione o de ação MsiUnpublishAssemblies à tabela InstallExecuteSequence.
- Adicione linhas à tabela MsiAssemblyName para o componente. Adicione uma linha para cada par de nome e valor especificado na seção assemblyIdentity do manifesto. Para obter um exemplo, consulte a tabela MsiAssemblyName .