Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’activation sans inscription pour les composants .NET Framework n’est que légèrement plus compliquée que pour les composants COM. Le programme d’installation nécessite deux manifestes :
Les applications COM doivent avoir un manifeste d’application de style Win32 pour identifier le composant managé.
Les composants .NET Framework 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 ; associer un manifeste de composant à un composant ; et incorporer un manifeste de composant dans un assembly.
Créer un manifeste d’application
À l’aide d’un éditeur XML, créez (ou modifiez) le manifeste d’application appartenant à l’application COM qui interagit avec un ou plusieurs composants managés.
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"> </assembly>Pour plus d’informations sur les éléments de manifeste et leurs attributs, consultez Manifestes d’application.
Identifiez le propriétaire du manifeste. Dans l’exemple suivant,
myComAppla version 1 possède le fichier manifeste.<?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="msil" /> </assembly>Identifier les assemblages dépendants. Dans l’exemple suivant,
myComAppdépendmyManagedCompde .<?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" /> </dependentAssembly> </dependency> </assembly>Enregistrez et nommez le fichier manifeste. Le nom d’un manifeste d’application est le nom de l’exécutable d’assembly suivi de l’extension .manifest. Par exemple, le nom du fichier manifeste de l’application pour 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, consultez À propos des assemblages côte à côte.
Créer un manifeste de composant
À l’aide d’un éditeur XML, créez un manifeste de composant pour décrire l’assembly managé.
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"> </assembly>Identifiez le propriétaire du fichier. L’élément
<assemblyIdentity>de l’élément<dependentAssembly>dans le fichier manifeste de l’application doit correspondre à celui du manifeste du composant. Dans l’exemple suivant,myManagedCompla version 1.2.3.4 possède le fichier manifeste.<?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" processorArchitecture="msil" /> </assembly>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.Caractéristique Descriptif Obligatoire clsidIdentificateur qui spécifie la classe à activer. Oui descriptionChaîne qui informe l’utilisateur du composant. Une chaîne vide est la valeur par défaut. Non nameChaîne qui représente la classe managée. Oui progidIdentificateur à utiliser pour l’activation à liaison tardive. Non threadingModelModèle de thread COM. « Both » est la valeur par défaut. Non runtimeVersionSpécifie la version clR (Common Language Runtime) à utiliser. Si vous ne spécifiez pas cet attribut et que le CLR n’est pas déjà chargé, le composant est chargé avec le CLR installé le plus récent avant clR version 4. Si vous spécifiez v1.0.3705, v1.1.4322 ou v2.0.50727, la version est automatiquement transférée vers la dernière version du CLR installée avant clR version 4 (généralement v2.0.50727). Si une autre version du CLR est déjà chargée et que la version spécifiée peut être chargée côte à côte, la version spécifiée est chargée ; sinon, le CLR chargé est utilisé. Cela peut entraîner un échec de chargement. Non tlbidIdentificateur de la bibliothèque de types qui contient des informations de type sur la classe. Non Toutes les balises d'attribut sont sensibles à la casse. Vous pouvez obtenir des CLSID, des ProgIDs, des modèles de thread et la version du runtime en consultant la bibliothèque de types exportée pour l’assembly avec OLE/COM ObjectViewer (Oleview.exe).
Le manifeste de composant suivant identifie deux classes,
testClass1ettestClass2.<?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>Enregistrez et nommez le fichier manifeste. Le nom d’un manifeste de composant est le nom de la bibliothèque d’assemblage suivie de l’extension .manifest. Par exemple, le myManagedComp.dll est myManagedComp.manifest.
Vous devez incorporer le manifeste du composant en tant que ressource dans l’assembly.
Pour incorporer un manifeste de composant dans un assembly managé
Créez un script de ressource qui contient l’instruction suivante :
1 RT_MANIFEST myManagedComp.manifestDans cette instruction,
myManagedComp.manifestest le nom du manifeste du composant incorporé. Pour cet exemple, le nom du fichier de script estmyresource.rc.Compilez le script à l’aide du compilateur de ressources Microsoft Windows (Rc.exe). À l’invite de commandes, tapez la commande suivante :
rc myresource.rcRc.exe produit le
myresource.resfichier de ressources.Compilez à nouveau le fichier source de l’assembly et spécifiez le fichier de ressources à l’aide de l’option /win32res :
/win32res:myresource.resLà encore,
myresource.resest le nom du fichier de ressources contenant des ressources incorporées.