Instalando assemblies Win32 para o uso privado de um aplicativo no Windows XP

O procedimento neste tópico identifica como criar um pacote do Windows Installer para instalar um assembly Win32. O pacote instala o assembly e um ficheiro de manifesto da aplicação numa pasta definida que a aplicação utiliza. O manifesto da aplicação especifica a dependência da aplicação na assembly privada. Após a instalação do pacote, a montagem privada fica disponível para uso exclusivo do aplicativo. A dependência de assembly especificada no manifesto da aplicação substitui (para esta aplicação) quaisquer outras dependências de assembly globais especificadas em arquivos de manifesto de assembly.

Antes de continuar, é uma boa ideia entender como criar um pacote do Windows Installer sem assemblies. Para obter mais informações, consulte An Installation Example.

Para instalar um assembly privado no Windows XP

  1. Defina um componente do Windows Installer que inclua o assembly Win32 e o arquivo de manifesto do aplicativo. Este componente pode conter outros recursos que devem ser sempre instalados ou removidos com a montagem. As etapas restantes deste procedimento descrevem como criar o banco de dados de instalação para instalar esse componente.
  2. Adicione uma linha à tabela Componente para o componente que contém o assembly Win32 e um ficheiro manifesto de aplicação. Insira um GUID válido do Windows Installer para este código de componente. Para obter mais informações, consulte Alterando o código do componente e O que acontece se as regras do componente forem quebradas?
  3. O instalador copia o arquivo de manifesto do assembly para a pasta que contém o arquivo especificado no campo File_Application da tabela MsiAssembly.
  4. Adicione uma linha à tabela FeatureComponents vinculando o componente a um recurso do Windows Installer. Para obter mais informações, consulte Componentes e funcionalidades. Um recurso do Windows Installer deve ser uma parte da funcionalidade do aplicativo que um usuário pode reconhecer. O conjunto é ativado quando esse recurso é selecionado por um usuário ou por um erro de um aplicativo. Se o assembly definir uma função adicional, adicione uma linha adicional à tabela Função para os atributos da função. Esta etapa não é necessária se estiver criando um módulo de mesclagem.
  5. Para assemblies lado-a-lado, as informações de ligação e ativação, por exemplo, classes COM, interfaces e bibliotecas de tipos, são armazenadas em arquivos de manifesto em vez do registo. As assemblages privadas armazenam estas informações em um manifesto de assemblage. Em sistemas que suportam montagens lado a lado, o instalador ignora o processamento de qualquer informação sobre o componente inserido na tabela Extension, Verb table, TypeLib table, MIME table, Class table, ProgId tablee AppId table. Informações de ligação e ativação podem ser inseridas nas tabelas para utilização por sistemas que não suportam partilha de assemblagem lado a lado.
  6. A instalação lado a lado não registra o assembly globalmente. O instalador ignora o auto-registro do componente se alguma informação de auto-registro for inserida na tabela SelfReg. As informações de auto registo podem ser inseridas na tabela SelfReg para o auto registo do componente em sistemas que não suportam a partilha de assemblies lado a lado.
  7. Adicione quaisquer outras informações ao Registro, excluindo as de vinculação e ativação ou auto-registo do componente, à tabela de Registro , à tabela RemoveRegistry e à tabela de Ambiente .
  8. O instalador ignora a tabela IsolatedComponent para este componente em sistemas operacionais que suportam compartilhamento lado a lado. Insira informações nesta tabela se desejar que o assembly seja privado em sistemas que suportam arquivos locais.
  9. 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. Digite a chave de arquivo do assembly privado no campo File_Application da tabela MsiAssembly. Adicione o de ação MsiPublishAssemblies à tabela InstallExecuteSequence ou tabela AdvtExecuteSequence. Adicione a ação MsiUnpublishAssemblies à tabela InstallExecuteSequence. Crie uma pasta para o assembly e o arquivo de manifesto na tabela Directory. Esta pasta deve estar no diretório raiz do aplicativo e conter o arquivo especificado no campo File_Application da tabela MsiAssembly. Durante a instalação da aplicação, o instalador resolve a tabela de diretório para obter o caminho para essa pasta. Para obter mais informações, consulte Usando a tabela de diretórios.
  10. 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 mais informações, consulte a tabela MsiAssemblyName .