Partilhar via


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.

Tabela MsiAssemblyName

Componente Nome Valor
ComponenteA Nome simples
ComponenteA Versão 1.0.0.0
ComponenteA Cultura neutro
ComponenteA publicKeyToken 9D1EC8380F483F5A