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
- 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.
- 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?
- 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.
- 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.
- 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.
- 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.
- 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 .
- 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.
- 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.
- 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 .