Partager via


Comment : configurer les composants .NET pour l'activation sans inscription

Mise à jour : novembre 2007

L'activation sans inscription des composants .NET n'est que légèrement plus compliquée que pour les composants COM. L'installation requiert deux manifestes :

  • Les applications COM doivent avoir un manifeste d'application de style Win32 pour identifier le composant managé.

  • Les composants .NET doivent avoir un manifeste de composant pour les informations d'activation nécessaires au moment de l'exécution.

Cette rubrique explique comment associer un manifeste d'application à une application, comment associer un manifeste de composant à un composant et comment incorporer un manifeste de composant dans un assembly.

Pour créer un manifeste d'application

  1. À l'aide d'un éditeur XML, créez (ou modifiez) le manifeste d'application de l'application COM qui interagit avec un ou plusieurs composants managés.

  2. Insérez l'en-tête standard suivant au début du fichier :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    

    Pour plus d'informations sur les éléments de manifeste et leurs attributs, recherchez « Application Manifests Reference » dans MSDN Library.

  3. Identifiez le propriétaire du manifeste. Dans l'exemple suivant, le fichier de manifeste appartient à myComApp version 1.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity type="win32" 
                        name="myOrganization.myDivision.myComApp" 
                        version="1.0.0.0" 
                        processorArchitecture="x86" 
      />
    
  4. Identifiez les assemblys dépendants. Dans l'exemple suivant, myComApp dépend de myManagedComp.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity type="win32" 
                        name="myOrganization.myDivision.myComApp" 
                        version="1.0.0.0" 
                        processorArchitecture="x86" 
                        publicKeyToken="8275b28176rcbbef"
      />
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" 
                        name="myOrganization.myDivision.myManagedComp" 
                        version="6.0.0.0" 
                        processorArchitecture="X86" 
                        publicKeyToken="8275b28176rcbbef"
                        language="*"
          />
        </dependentAssembly>
      </dependency>
    </assembly>
    
  5. Nommez et enregistrez le fichier de manifeste. Le nom d'un manifeste d'application est le nom de l'assembly exécutable suivi de l'extension .manifest. Par exemple, le nom du fichier de manifeste d'application de myComApp.exe est myComApp.exe.manifest.

Vous pouvez installer un manifeste d'application dans le même répertoire que l'application COM. Vous pouvez également l'ajouter en tant que ressource au fichier .exe de l'application. Pour plus d'informations, recherchez « Side-by-side Assemblies » dans MSDN Library.

Pour créer un manifeste de composant

  1. À l'aide d'un éditeur XML, créez un manifeste de composant pour décrire l'assembly managé.

  2. Insérez l'en-tête standard suivant au début du fichier :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    
  3. Identifiez le propriétaire du manifeste. L'élément <assemblyIdentity> de l'élément <dependentAssembly> dans le fichier de manifeste d'application doit correspondre à celui figurant dans le manifeste de composant. Dans l'exemple suivant, le fichier de manifeste appartient à myManagedComp version 1.2.3.4.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
           <assemblyIdentity
                        name="myOrganization.myDivision.myManagedComp"
                        version="1.2.3.4" />
                        publicKeyToken="8275b28176rcbbef"
    
  4. Identifiez chaque classe dans l'assembly. Utilisez l'élément <clrClass> pour identifier de manière unique chaque classe dans l'assembly managé. L'élément, qui est un sous-élément de l'élément <assembly>, a les attributs décrits dans le tableau suivant.

    Attribut

    Description

    Requis

    clsid

    Identificateur qui spécifie la classe à activer.

    Oui

    description

    Chaîne qui informe l'utilisateur sur le composant. L'attribut par défaut est une chaîne vide.

    Non

    name

    Chaîne représentant la classe managée.

    Oui

    progid

    Identificateur à utiliser pour une activation à liaison tardive.

    Non

    threadingModel

    Modèle de thread COM. "Both" est la valeur par défaut.

    Non

    runtimeVersion

    Cet attribut est ignoré. Si le runtime n'est pas déjà chargé, la version la plus récente est chargée avant l'activation de la classe. Sinon, la version actuellement chargée est utilisée.

    Non

    tlbid

    Identificateur de la bibliothèque de types qui contient les informations de type sur la classe.

    Non

    Toutes les balises d'attribut respectent la casse. Vous pouvez obtenir des CLSID, des ProgID, des modèles de thread et la version du runtime en affichant la bibliothèque de types exportée de l'assembly à l'aide de l'explorateur d'objets OLE/COM (Oleview.exe).

    Le manifeste de composant suivant identifie une même classe à l'aide de deux méthodes.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
           <assemblyIdentity
                        name="myOrganization.myDivision.myManagedComp"
                        version="1.2.3.4" />
                        publicKeyToken="8275b28176rcbbef"
           <clrClass
                        clsid="{65722BE6-3449-4628-ABD3-74B6864F9739}"
                        progid="myManagedComp.testClass1"
                        threadingModel="Both"
                        name="myManagedComp.testClass1"
                        runtimeVersion="v1.0.3705">
           </clrClass>
           <clrClass
                        clsid="{367221D6-3559-3328-ABD3-45B6825F9732}"
                        progid="myManagedComp.testClass2"
                        threadingModel="Both"
                        name="myManagedComp.testClass2"
                        runtimeVersion="v1.0.3705">
           </clrClass>
           <file name="MyManagedComp.dll">
           </file>
    </assembly>
    
  5. Nommez et enregistrez le fichier de manifeste. Le nom d'un manifeste de composant est le nom de la bibliothèque d'assembly suivi de l'extension .manifest. Par exemple, le nom du fichier de manifeste de composant de myManagedComp.dll est myManagedComp.manifest.

Vous devez incorporer le manifeste de composant en tant que ressource dans l'assembly.

Pour incorporer un manifeste de composant dans un assembly managé

  1. Créez un script de ressources qui contient l'instruction suivante :

    RT_MANIFEST 1 myManagedComp.manifest

    Dans cette instruction, myManagedComp.manifest est le nom du manifeste de composant incorporé. Pour cet exemple, le nom du fichier de script est myresource.rc.

  2. Compilez le script à l'aide du compilateur de ressources Microsoft Windows (Rc.exe). À l'invite de commande, tapez la commande suivante :

    rc myresource.rc

    Rc.exe génère le fichier de ressources myresource.res.

  3. Compilez de nouveau le fichier source de l'assembly et spécifiez le fichier de ressources à l'aide de l'option /win32res :

    /win32res:myresource.res
    

    myresource.res est de nouveau le nom du fichier de ressources contenant la ressource incorporée.

Voir aussi

Concepts

Configuration requise pour COM Interop sans inscription

Configuration des composants COM pour l'activation sans inscription

Autres ressources

COM Interop sans inscription