Instructions pour la création d’assemblys côte à côte

Les instructions suivantes expliquent comment créer vos propres assemblys COM ou Win32 côte à côte. Vous n’aurez peut-être pas besoin de créer vos propres assemblys côte à côte si les fonctionnalités nécessaires sont fournies par l’un des assemblys Microsoft côte à côte pris en charge. Dans ce cas, utilisez les assemblys fournis par Microsoft et suivez les procédures d’utilisation d’assemblys côte à côte dans Utilisation d’applications isolées et d’assemblys côte à côte.

Tout d’abord, déterminez si votre composant est un candidat approprié pour un assembly côte à côte. Pour plus d’informations, consultez Devez-vous fournir un composant partagé en tant qu’assembly côte à côte ?

Pour créer un assembly côte à côte, suivez ces instructions :

  • Déterminez les ressources à inclure dans l’assembly. N’oubliez pas qu’un assembly se compose d’un ou plusieurs fichiers qui sont toujours fournis ensemble aux applications et aux clients. L’assembly sert d’unité fondamentale utilisée pour l’attribution de noms, la liaison, le contrôle de version, le déploiement et la configuration par défaut. En règle générale, lorsqu’on ne sait pas si deux ressources appartiennent au même assembly, il est recommandé qu’elles soient créées pour accéder à des assemblys distincts. En règle générale, un assembly côte à côte se compose d’une seule DLL.
  • Créez un manifeste d’assembly pour l’assembly. Le manifeste doit décrire les bibliothèques d’objets COM ou de types dans l’assembly. Pour plus d’informations sur ce qui doit être créé dans un manifeste d’assembly, consultez Manifestes d’assembly.
  • Évaluez l’utilisation des objets lorsque plusieurs versions de votre assembly sont exécutées sur le système. Déterminez si différentes versions de l’assembly nécessitent des structures de données distinctes, telles que des fichiers mappés en mémoire, des canaux nommés, des messages et des classes Windows inscrits, de la mémoire partagée, des sémaphores, des mutexes et des pilotes matériels. Toutes les structures de données utilisées entre les versions d’assembly doivent être des versions rétrocompatibles. Déterminez quelles structures de données peuvent être utilisées entre les versions et quelles structures de données doivent être privées d’une version. Déterminez si les structures de données partagées nécessitent des objets de synchronisation distincts tels que des sémaphores et des mutex.
  • Créez votre DLL pour qu’elle fonctionne bien en tant qu’assembly côte à côte en respectant les instructions de création d’une DLL pour un assembly côte à côte.
  • Créez un ensemble de fichiers d’en-tête et de fonctions d’assistance pour fournir un moyen simple d’obtenir des clés de Registre de versions contenant l’état de l’assembly. Les assemblys enregistrent généralement leurs paramètres d’état dans les clés de Registre. Les paramètres du Registre doivent être écrits sur une version individuelle pour isoler plusieurs versions d’assembly qui peuvent être exécutées en même temps. Concevez votre assembly côte à côte et votre DLL pour stocker et gérer correctement l’état de l’assembly pendant les scénarios de partage côte à côte. Suivez les instructions décrites dans Stockage d’état de création pour les assemblys côte à côte.
  • Les développeurs d’applications qui utilisent des assemblys privés doivent sécuriser le répertoire de l’application. Si l’application est installée à l’aide de Windows Installer, le répertoire de l’application peut être sécurisé à l’aide de la table LockPermissions. En règle générale, le système a accès en lecture, écriture et exécution aux assemblys privés ; tous les autres processus bénéficient uniquement d’un accès d’exécution et de lecture.
  • Testez l’assembly à l’aide de scénarios avec partage côte à côte pour vous assurer qu’il s’agit d’un assembly côte à côte valide. L’installation réussie de l’assembly n’est pas suffisante pour garantir qu’il fonctionnera comme prévu.
  • Adoptez une méthode pour les mises à jour de numérotation pour votre assembly. Chaque assembly est associé à un numéro de version en quatre parties. De gauche à droite, les parties principales, mineures, de build et de révision sont séparées par des points. Modifiez le nombre majeur ou mineur d’un assembly pour une version incompatible avec les versions antérieures. Modifiez uniquement les parties de build et de révision pour les modifications rétrocompatibles apportées à l’assembly. Par exemple, un développeur peut adopter une méthode de numérotation dans laquelle tous les numéros de version 1.0.0.* font référence aux versions de mise à jour vers la version d’assembly 1.0.0.0.