Mise à jour des assemblys

Les informations de cette rubrique identifient les instructions recommandées pour la mise à jour des assemblys à l’aide des correctifs Windows Installer.

Les auteurs de mises à jour d’assemblys peuvent utiliser les instructions suivantes, qui s’appliquent à tous les types d’assemblys :

  • La méthode recommandée pour mettre à jour un assembly consiste à modifier le nom fort de l’assembly dans la table MsiAssemblyName. La nouvelle version de l’assembly peut être fournie par un nouveau composant ou par le même composant qui fournit l’ancienne version.
  • Si la nouvelle version de l’assembly est fournie par le même composant, ne modifiez pas le type d’assembly .NET Framework en assembly Win32 ou inversement.
  • Si toutes les applications sur le système doivent utiliser l’assembly mis à jour, vous devez déployer un assembly de stratégie. Un assembly de stratégie peut rediriger les applications sur le système pour qu’elles utilisent la nouvelle version de l’assembly. Les assemblys de stratégie doivent être fournis en créant un composant.
  • Windows Installer 3.0 ou version ultérieure est requis pour désinstaller les mises à jour d’assembly. Pour plus d’informations, consultez Suppression des correctifs.
  • La version la plus récente de l’assembly doit contenir les versions identiques ou supérieures des fichiers des assemblys précédemment publiés.
  • Windows Installer 3.0 peut traiter les assemblys .NET Framework et Win32 par un remplacement de fichier complet ou par une mise à jour delta plus petite. Pour plus d’informations, consultez Réduction de la taille des correctifs.
  • Si votre mise à jour modifie le nom fort de l’assembly, les tables MsiPatchOldAssemblyFile et MsiPatchOldAssemblyName sont requises si le package de correctifs n’a pas de table MsiPatchSequence. Les tables MsiPatchOldAssemblyFile et MsiPatchOldAssemblyName ne sont pas requises si le package de correctifs contient des informations de séquencement de correctifs dans une table MsiPatchSequence.
  • Avant de publier un nouveau correctif, testez le correctif en l’appliquant avec tous les correctifs publiés précédemment.

Mise à jour des assemblys Win32

Suivez les instructions suivantes lorsque vous mettez à jour des assemblys Win32 :

  • Modifiez le nom fort du nouvel assembly spécifié dans la table MsiAssemblyName.
  • Si vous souhaitez que votre application utilise toujours la nouvelle version de l’assembly sans affecter la version de l’assembly utilisée par d’autres applications sur le système, utilisez le même composant pour contenir la nouvelle version de l’assembly que vous avez utilisée pour l’ancienne version de l’assembly. Conservez le même ComponentId dans la table Component. Une fois que votre application a été corrigée, elle contient uniquement une référence à la nouvelle version de l’assembly. L’ancienne version de l’assembly peut rester avec la nouvelle version dans le Global Assembly Cache. Cela n’affecte pas les autres applications sur le système qui utilisent l’ancienne version de l’assembly. Lorsque le même composant est utilisé pour la nouvelle et l’ancienne version de l’assembly, votre mise à jour peut être un correctif delta plus petit.
  • Si la nouvelle version de l’assembly n’est pas compatible avec tous les systèmes sur lesquels vous souhaitez installer votre application, vous pouvez installer les versions nouvelles et anciennes de l’assembly en tant qu’assemblys côte à côte. Pour installer les deux versions d’assembly côte à côte, créez un composant pour contenir la nouvelle version de l’assembly. Le ComponentId dans la table Component pour le nouveau composant doit être différent du ComponentId de celui avec l’ancienne version. Une fois que votre application a été corrigée, elle contient des références aux deux versions d’assembly. Ensuite, l’application peut être dirigée vers la version compatible de l’assembly par un manifeste. Lorsque différents composants sont utilisés pour la nouvelle et l’ancienne version de l’assembly, votre mise à jour utilise un remplacement complet des fichiers.

Mise à jour des assemblys .NET Framework

Suivez les instructions suivantes lorsque vous mettez à jour des assemblys .NET Framework.

  • Modifiez le nom fort du nouvel assembly spécifié dans la table MsiAssemblyName.

  • Si vous souhaitez que votre application utilise toujours la nouvelle version de l’assembly sans affecter la version de l’assembly utilisée par d’autres applications sur le système, modifiez le nom fort du nouvel assembly qui est spécifié dans la table MsiAssemblyName, et utilisez le même composant pour contenir la nouvelle version de l’assembly que vous avez utilisée pour l’ancienne version de l’assembly. Conservez le même ComponentId dans la table Component. Une fois que votre application a été corrigée, elle contient uniquement une référence à la nouvelle version de l’assembly. L’ancienne version de l’assembly peut rester avec la nouvelle version dans le cache global. Cela n’affecte pas les autres applications sur le système qui utilisent l’ancienne version de l’assembly. Lorsque le même composant est utilisé pour la nouvelle et l’ancienne version de l’assembly, votre mise à jour peut être un correctif delta plus petit.

  • Si la nouvelle version de l’assembly n’est pas compatible avec tous les systèmes sur lesquels vous souhaitez installer votre application, vous pouvez installer les versions nouvelles et anciennes de l’assembly en tant qu’assemblys côte à côte. Pour installer les deux versions d’assembly côte à côte, modifiez le nom fort du nouvel assembly spécifié dans la table MsiAssemblyName et créez un nouveau composant pour contenir la nouvelle version de l’assembly. Le ComponentId dans la table Component pour le nouveau composant doit être différent du ComponentId de celui avec l’ancienne version. Une fois que votre application a été corrigée, elle contient des références aux deux versions d’assembly. L’application peut ensuite être dirigée vers la version compatible de l’assembly par un manifeste. Lorsque différents composants sont utilisés pour la nouvelle et l’ancienne version de l’assembly, votre mise à jour utilise un remplacement complet des fichiers.

  • Une mise à jour sur place remplace la copie d’un assembly .NET Framework dans le Global Assembly Cache. Ce type de mise à jour d’assembly ne modifie pas le nom fort de l’assembly. Seule la valeur du champ FileVersion de la table MsiAssemblyName est modifiée. La mise à jour sur place d’un assembly .NET Framework nécessite .NET Framework 1.1 SP1 ou version ultérieure.

    Notes

    Le type de mise à jour sur place remplace la copie de l’assembly dans le cache global et peut interrompre d’autres applications si la nouvelle version de l’assembly ne présente pas une compatibilité descendante totale. La méthode recommandée pour mettre à jour un assembly consiste à modifier le nom fort de l’assembly dans la table MsiAssemblyName.