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 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 di assembly di ogni assembly deve essere creato nella tabella MsiAssemblyName.
- Usare la tabella del Registro di sistema anziché la tabella classe quando si registra l'interoperabilità COM per un assembly.
- Gli assembly con lo stesso nome sicuro sono gli stessi 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 gli assembly privati.
Aggiunta di assembly Win32
Utilizzare le seguenti indicazioni quando si includono gli assembly Win32:
- Il valore KeyPath nella tabella componente per un componente che contiene un assembly Win32 non deve essere Null.
- Il valore KeyPath nella tabella componente per un componente che contiene un assembly delle politiche Win32 deve essere il file di manifesto.
- Il valore KeyPath nella tabella del componente per un componente, che contiene un assembly Win32 e non è un assembly dei criteri, non deve essere il file manifesto o il file di catalogo. Deve essere un file diverso nell'assemblaggio.
- Aggiungere una riga alla tabella MsiAssemblyName per ogni coppia nome e valore elencata nella sezione assemblyIdentity del manifesto dell'assembly Win32.
Aggiunta degli assembly utilizzati con .NET Framework
Utilizzare le linee guida seguenti quando si includono assembly utilizzati dal Common Language Runtime del .NET Framework.
- Il valore di KeyPath nella tabella del componente per un componente che include 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 forte 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 utilizzato dal Common Language Runtime.
Componente | Nome | Valore |
---|---|---|
ComponenteA | Nome | semplice |
ComponentA | Versione | 1.0.0.0 |
ComponentA | Cultura | neutrale |
ComponenteA | publicKeyToken | 9d1ec8380f483f5a |