Como adicionar assemblies a um pacote
Os desenvolvedores do Windows Installer podem usar as diretrizes deste tópico para criar pacotes do Windows Installer que contenham assemblies.
As diretrizes a seguir se aplicam aos assemblies Win32 e aos assemblies usados pelo Common Language Runtime do Microsoft .NET Framework.
- Um componente do Windows Installer não deve conter mais de um assembly.
- Todos os arquivos no assembly devem estar em um só componente.
- Cada componente que contém um assembly deve ter uma entrada na tabela MsiAssembly.
- O nome forte do cache de assembly de cada assembly deve ser criado na tabela MsiAssemblyName.
- Use a tabela Registry em vez da tabela Class ao registrar a Interoperabilidade COM de um assembly.
- Os assemblies que têm o mesmo nome forte são o mesmo assembly. Quando o mesmo assembly é instalado por aplicativos diferentes, os componentes que contêm o assembly devem usar o mesmo valor para ComponentId nas respectivas tabelas Component.
Observação
Os anúncios de produtos identificam os assemblies que podem ser instalados e usados por aplicativos diferentes. Os anúncios de produtos não identificam assemblies particulares.
Como adicionar assemblies Win32
Use as seguintes diretrizes ao incluir assemblies Win32:
- O valor KeyPath da tabela Component para um componente que contém um assembly Win32 não deve ser Null.
- O valor KeyPath da tabela Component para um componente que contém um assembly de política Win32 deve ser o arquivo de manifesto.
- O valor KeyPath da tabela Component para um componente que contém um assembly Win32, que não é um assembly de política, não deve ser o arquivo de manifesto ou o arquivo de catálogo. Ele deve ser um arquivo diferente no assembly.
- Adicione uma linha à tabela MsiAssemblyName para cada par de nome e valor listado na seção assemblyIdentity do manifesto do assembly Win32.
Como adicionar assemblies usados com o .NET Framework
Use as diretrizes a seguir ao incluir assemblies usados pelo Common Language Runtime do .NET Framework.
- O valor KeyPath da tabela Component para um componente que contém o assembly não deve ser Null.
- Quando você instala um assembly usado pelo Common Language Runtime no Cache de Assembly Global, o valor da coluna File_Application na tabela MsiAssembly precisa ser Null.
- Adicione uma linha à tabela MsiAssemblyName para cada atributo do nome forte do assembly. Todos os assemblies precisam ter os atributos Name, Version e Culture especificados na tabela MsiAssemblyName. Um atributo publicKeyToken é necessário para um assembly global. A tabela a seguir é um exemplo da tabela MsiAssemblyName para um assembly global para uso do Common Language Runtime.
Componente | Nome | Valor |
---|---|---|
ComponentA | Nome | simple |
ComponentA | version | 1.0.0.0 |
ComponentA | Cultura | neutro |
ComponentA | publicKeyToken | 9d1ec8380f483f5a |