Adicionar conjuntos a um pacote
Os desenvolvedores do Windows Installer podem usar as diretrizes neste tópico para criar pacotes do Windows Installer que contenham assemblies.
As diretrizes a seguir se aplicam a assemblies Win32 e assemblies que o Common Language Runtime do Microsoft .NET Framework usa.
- Um componente do Windows Installer não deve conter mais de um conjunto.
- Todos os arquivos no assembly devem estar em um único componente.
- Cada componente que contém um assembly deve ter uma entrada na tabela MsiAssembly.
- O nome forte de cache de assembly de cada assembly deve ser criado na tabela MsiAssemblyName.
- Use a tabela Registry em vez da tabela Class quando registrar a interoperabilidade COM para um assembly.
- As assemblies que têm o mesmo nome forte são os mesmos assemblies. Quando o mesmo assembly é instalado por aplicativos diferentes, os componentes que contêm o assembly devem usar o mesmo valor para o ComponentId em suas tabelas Component.
Observação
Os anúncios de produtos identificam montagens que podem ser instaladas e usadas por diferentes aplicativos. Os anúncios de produtos não identificam montagens privadas.
Adicionando assemblies Win32
Use as seguintes diretrizes ao incluir assemblies do Win32:
- O valor KeyPath na tabela Component para um componente que contém um assembly Win32 não deve ser Null.
- O valor KeyPath na tabela de Componente para um componente que contém um conjunto de políticas Win32 deve ser o ficheiro de manifesto.
- O valor KeyPath na 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 arquivo de catálogo. Deve ser um arquivo diferente na montagem.
- Adicione uma linha à tabela MsiAssemblyName para cada par de nome e valor listados na seção assemblyIdentity do manifesto da assembly Win32.
Adicionando assemblies usados com o .NET Framework
Use as diretrizes seguintes quando incluíres assemblies que o Runtime da Linguagem Comum do .NET Framework utiliza.
- O valor KeyPath na tabela Componente para um componente que contém o conjunto não deve ser Null.
- Quando você instala um assembly usado pelo common language runtime no cache de assembly global, o valor na coluna File_Application da tabela MsiAssembly deve ser Null.
- Adicione uma linha à tabela MsiAssemblyName para cada atributo do nome forte do assembly. Todos os assemblies devem ter os atributos Name, Version e Culture que estão especificados na tabela MsiAssemblyName. Um atributo denominado publicKeyToken é necessário para uma assembly global. A tabela a seguir é um exemplo da tabela MsiAssemblyName para um assembly global para uso pelo ambiente de execução de linguagem comum.
Componente | Nome | Valor |
---|---|---|
ComponenteA | Nome | simples |
ComponenteA | Versão | 1.0.0.0 |
ComponenteA | Cultura | neutro |
ComponenteA | publicKeyToken | 9D1EC8380F483F5A |