Aggiornamento degli assembly

Le informazioni contenute in questo argomento identificano le linee guida consigliate per l'aggiornamento degli assembly tramite le patch di Windows Installer.

Gli autori di aggiornamenti degli assembly possono usare le linee guida seguenti, che si applicano a tutti i tipi di assembly:

  • Il metodo consigliato per l'aggiornamento di un assembly consiste nel modificare il nome sicuro dell'assembly nella tabella MsiAssemblyName. La nuova versione dell'assembly può essere fornita da un nuovo componente o dallo stesso componente che fornisce la versione precedente.
  • Se la nuova versione dell'assembly viene fornita dallo stesso componente, non modificare il tipo di assembly da un assembly .NET Framework a un assembly Win32 o viceversa.
  • Se tutte le applicazioni nel sistema devono usare l'assembly aggiornato, è necessario distribuire un assembly di criteri. Un assembly di criteri può reindirizzare le applicazioni nel sistema per usare la nuova versione dell'assembly. Gli assembly dei criteri devono essere forniti creando un nuovo componente.
  • Windows Installer 3.0 o versione successiva è necessario per disinstallare gli aggiornamenti degli assembly. Per altre informazioni, vedere Rimozione di patch.
  • La versione più recente dell'assembly deve contenere le stesse o versioni successive dei file degli assembly rilasciati in precedenza.
  • Windows Installer 3.0 può eseguire il servizio degli assembly .NET Framework e Win32 tramite una sostituzione completa dei file o tramite un aggiornamento differenziale più piccolo. Per altre informazioni, vedere Riduzione delle dimensioni delle patch.
  • Se l'aggiornamento modifica il nome sicuro dell'assembly, la tabella MsiPatchOldAssemblyFile e la tabella MsiPatchOldAssemblyName sono necessarie se il pacchetto patch non ha una tabella MsiPatchSequence . La tabella MsiPatchOldAssemblyFile e la tabella MsiPatchOldAssemblyName non sono necessarie se il pacchetto patch contiene informazioni di sequenziazione patch in una tabella MsiPatchSequence.
  • Prima di rilasciare una nuova patch, testare la patch applicandola con tutte le patch rilasciate in precedenza.

Aggiornamento di assembly Win32

Usare le linee guida seguenti quando si aggiornano gli assembly Win32:

  • Modificare il nome sicuro del nuovo assembly specificato nella tabella MsiAssemblyName.
  • Se si vuole che l'applicazione usi sempre la nuova versione dell'assembly senza influire sulla versione dell'assembly usata da altre applicazioni nel sistema, usare lo stesso componente per contenere la nuova versione dell'assembly usata per la versione precedente dell'assembly. Mantenere lo stesso ComponentId nella tabella Component . Dopo aver eseguito l'applicazione con patch, contiene solo un riferimento alla nuova versione dell'assembly. La versione precedente dell'assembly può rimanere con la nuova versione nella Global Assembly Cache. Ciò non influisce sulle altre applicazioni nel sistema che usano la versione precedente dell'assembly. Quando lo stesso componente viene usato sia per le versioni nuove che per le versioni precedenti dell'assembly, l'aggiornamento può essere una patch differenziale più piccola.
  • Se la nuova versione dell'assembly non è compatibile con tutti i sistemi in cui si vuole installare l'applicazione, è possibile installare le versioni nuove e precedenti dell'assembly come assembly affiancati. Per installare entrambe le versioni degli assembly affiancate, creare un nuovo componente per contenere la nuova versione dell'assembly. Il ComponentId nella tabella Component per il nuovo componente deve essere diverso da ComponentId del componente con la versione precedente. Dopo aver eseguito l'applicazione con patch, contiene riferimenti a entrambe le versioni dell'assembly. L'applicazione può quindi essere indirizzata alla versione compatibile dell'assembly da un manifesto. Quando vengono usati componenti diversi per le versioni nuove e precedenti dell'assembly, l'aggiornamento usa la sostituzione completa dei file.

Aggiornamento di assembly .NET Framework

Usare le linee guida seguenti quando si aggiornano gli assembly .NET Framework.

  • Modificare il nome sicuro del nuovo assembly specificato nella tabella MsiAssemblyName.

  • Se si desidera che l'applicazione usi sempre la nuova versione dell'assembly senza influire sulla versione dell'assembly usata da altre applicazioni nel sistema, modificare il nome sicuro del nuovo assembly specificato nella tabella MsiAssemblyName e usare lo stesso componente per contenere la nuova versione dell'assembly usata per la versione precedente dell'assembly. Mantenere lo stesso ComponentId nella tabella Component . Dopo aver eseguito l'applicazione con patch, contiene solo un riferimento alla nuova versione dell'assembly. La versione precedente dell'assembly può rimanere con la nuova versione nella Global Cache. Ciò non influisce sulle altre applicazioni nel sistema che usano la versione precedente dell'assembly. Quando lo stesso componente viene usato sia per le versioni nuove che per le versioni precedenti dell'assembly, l'aggiornamento può essere una patch differenziale più piccola.

  • Se la nuova versione dell'assembly non è compatibile con tutti i sistemi in cui si vuole installare l'applicazione, è possibile installare le versioni nuove e precedenti dell'assembly come assembly affiancati. Per installare entrambe le versioni dell'assembly affiancate, modificare il nome sicuro del nuovo assembly specificato nella tabella MsiAssemblyName e creare un nuovo componente per contenere la nuova versione dell'assembly. Il ComponentId nella tabella Component per il nuovo componente deve essere diverso da ComponentId del componente con la versione precedente. Dopo aver eseguito l'applicazione con patch, contiene riferimenti a entrambe le versioni dell'assembly. L'applicazione può quindi essere indirizzata alla versione compatibile dell'assembly da un manifesto. Quando vengono usati componenti diversi per le versioni nuove e precedenti dell'assembly, l'aggiornamento usa la sostituzione completa dei file.

  • Un aggiornamento sul posto sovrascrive la copia di un assembly .NET Framework nella Global Assembly Cache. Questo tipo di aggiornamento dell'assembly non modifica il nome sicuro dell'assembly. Viene modificato solo il valore nel campo FileVersion della tabella MsiAssemblyName . L'aggiornamento sul posto di un assembly .NET Framework richiede .NET Framework 1.1 SP1 o versione successiva.

    Nota

    Il tipo di aggiornamento sul posto sovrascrive la copia dell'assembly nella Global Cache e può interrompere altre applicazioni se la nuova versione dell'assembly non è completamente compatibile con le versioni precedenti. Il metodo consigliato per l'aggiornamento di un assembly consiste nel modificare il nome sicuro dell'assembly nella tabella MsiAssemblyName.