Aggiunta di assembly a un pacchetto

Gli sviluppatori di Windows Installer possono usare le linee guida contenute in questo argomento per creare pacchetti di Windows Installer contenenti assembly.

Le linee guida seguenti si applicano agli assembly Win32 e agli assembly usati da Common Language Runtime di Microsoft .NET Framework.

  • Un componente di Windows Installer non deve contenere più di un assembly.
  • Tutti i file nell'assembly devono trovarsi in un singolo componente.
  • Ogni componente che contiene un assembly deve avere una voce nella tabella MsiAssembly .
  • Il nome sicuro della cache degli assembly di ogni assembly deve essere creato nella tabella MsiAssemblyName .
  • Usare la tabella Registry anziché la tabella Class quando si registra l'interoperabilità COM per un assembly.
  • Gli assembly con lo stesso nome sicuro sono lo stesso assembly. Quando lo stesso assembly viene installato da applicazioni diverse, i componenti che contengono l'assembly devono usare lo stesso valore per ComponentId nelle tabelle Component .

Nota

Gli annunci di prodotto identificano gli assembly che possono essere installati e usati da applicazioni diverse. Gli annunci di prodotto non identificano assembly privati.

 

Aggiunta di assembly Win32

Usare le linee guida seguenti quando si includono assembly Win32:

  • Il valore KeyPath nella tabella Component per un componente che contiene un assembly Win32 non deve essere Null.
  • Il valore KeyPath nella tabella Component per un componente che contiene un assembly dei criteri Win32 deve essere il file manifesto.
  • Il valore KeyPath nella tabella Component per un componente che contiene un assembly Win32, che non è un assembly dei criteri, non deve essere il file manifesto o il file di catalogo. Deve essere un file diverso nell'assembly.
  • Aggiungere una riga alla tabella MsiAssemblyName per ogni coppia nome e valore elencata nella sezione assemblyIdentity del manifesto dell'assembly Win32.

Aggiunta di assembly usati con .NET Framework

Usare le linee guida seguenti quando si includono assembly usati da Common Language Runtime di .NET Framework.

  • Il valore KeyPath nella tabella Component per un componente che contiene l'assembly non deve essere Null.
  • Quando si installa un assembly usato da Common Language Runtime nella Global Assembly Cache, il valore nella colonna File_Application della tabella MsiAssembly deve essere Null.
  • Aggiungere una riga alla tabella MsiAssemblyName per ogni attributo del nome sicuro dell'assembly. Tutti gli assembly devono avere gli attributi Name, Version e Culture specificati nella tabella MsiAssemblyName. Per un assembly globale è necessario un attributo publicKeyToken. La tabella seguente è un esempio della tabella MsiAssemblyName per un assembly globale per l'uso da parte di Common Language Runtime.

Tabella MsiAssemblyName

Componente Nome Valore
Componenta Nome simple
Componenta version 1.0.0.0
Componenta Impostazioni cultura neutrale
Componenta Publickeytoken 9d1ec8380f483f5a