Partager via


Utilisation d’assemblys côte à côte

Utilisez la procédure suivante pour développer une nouvelle application, ou mettre à jour une application existante, afin d’utiliser les assemblys côte à côte disponibles auprès de Microsoft ou d’autres éditeurs d’assembly côte à côte. Pour obtenir la liste des assemblys côte à côte actuellement fournis par Microsoft, consultez Assemblys côte à côte Microsoft pris en charge. Notez que l’application doit être exécutée au moins sur Windows XP pour installer les assemblys en tant qu’assemblys côte à côte. Pour plus d’informations, consultez Recommandations pour la création d’assemblys côte à côte.

Pour ajouter un assembly côte à côte à une application

  1. Identifiez les assemblys côte à côte dont votre application a besoin. À compter de Windows XP, ces assemblys côte à côte et leurs manifestes d’assembly sont installés avec le système d’exploitation, mais ne sont pas inscrits globalement.

  2. Utilisez un éditeur XML pour créer un manifeste d’application. Consultez l’exemple de manifeste d’application ci-dessous. Pour plus d’informations, consultez Manifestes d’application dans la référence des fichiers manifestes.

  3. Entrez des valeurs d’attribut dans le sous-élément de contexte DEFIdentity du manifeste d’application qui définit l’application de manière unique. Pour plus d’informations sur l’assembly de contexte DEFIdentity, consultez Manifestes d’application.

  4. Si l’assembly contient des assemblys dépendants, entrez des valeurs d’attribut dans les sous-éléments d’assembly de contexte REFIdentity correspondants du manifeste de l’application. Pour plus d’informations sur l’assembly de contexte REFIdentity, consultez Manifestes d’application.

    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.SampleAssembly"
                        version="6.0.0.0" processorArchitecture="x86"
                        publicKeyToken="a5aaf5ba15723d5"/>
    
  5. Vous pouvez inclure le manifeste de l’application dans le fichier d’en-tête exécutable binaire de l’application.

    Dans ce cas, ajoutez également la ligne suivante au fichier d’en-tête de l’application :

    CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST « YourApp.exe.manifest »

    Vous pouvez également placer un fichier manifeste distinct dans le même répertoire que le fichier exécutable de votre application. Le système d’exploitation charge d’abord le manifeste à partir du système de fichiers, puis vérifie la section des ressources de l’exécutable. La version du système de fichiers est prioritaire.

  6. Les assemblys partagés doivent être installés à l’aide de Windows Installer version 2.0. Créez un package Windows Installer comme décrit dans Comment installer des assemblys Win32 pour le partage côte à côte sur Windows XP ?.

  7. Les assemblys privés peuvent être installés à l’aide de Windows Installer version 2.0. Créez un package Windows Installer comme décrit dans Comment installer des assemblys Win32 pour l’utilisation privée d’une application sur Windows XP ?. Vous pouvez également utiliser n’importe quel autre programme d’installation pour copier un assembly privé et son manifeste dans le même dossier que le fichier exécutable de l’application.

  8. Testez votre application pour vérifier les résultats. Notez que l’assembly côte à côte ne doit pas être inscrit sur votre ordinateur de test.

  9. Déployez votre application ou mettez à jour en tant que package Windows Installer.

Exemple de manifeste d’application

Voici un exemple de manifeste d’application :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="Microsoft.Windows.mysampleapp" version="1.0.0.0" processorArchitecture="x86"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="a5aaf5ba15723d5"/>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Tools.MyPrivateDll" version="2.5.0.0" processorArchitecture="x86"/>
    </dependentAssembly>
  </dependency>
</assembly>