Activation d’un assembly dans une application hébergeant une DLL, une extension ou un Panneau de configuration

Si votre application héberge une DLL, une extension, un plug-in ou un panneau de configuration tiers, vous pouvez activer un assembly dans votre application, sans activer cet assembly pour les composants hébergés. Cela peut être le cas lorsqu’un composant hébergé nécessite des modifications de code pour utiliser l’assembly. En tant que développeur d’applications, vous ne pourrez peut-être pas apporter des modifications à ces composants tiers. Dans ce cas, vous devez suivre la procédure décrite dans cette section afin que votre application puisse utiliser l’assembly sans affecter les composants hébergés.

  • Pour activer un assembly dans une application sans affecter les DLL, extensions, plug-ins ou panneaux de contrôle hébergés, un manifeste décrivant la dépendance de l’application vis-à-vis de l’assembly doit être inclus dans l’application en tant que ressource. Les composants hébergés qui ne sont pas activés avec l’assembly ne doivent pas inclure de manifestes décrivant cette dépendance.
  • Pour activer un assembly dans une application et ses DLL hébergées, extensions, plug-ins ou panneaux de contrôle, incluez des manifestes en tant que ressources dans l’application et ses composants hébergés. Les manifestes inclus dans l’application et dans les composants hébergés doivent chacun décrire une dépendance vis-à-vis de l’assembly. En règle générale, le développeur d’application ajoute un manifeste à l’application et le développeur du composant hébergé ajoute un manifeste à la DLL, à l’extension, au plug-in ou au panneau de configuration.

La méthode suivante peut être utilisée pour ajouter un manifeste à une application ou à un composant hébergé qui est une DLL, une extension, un plug-in ou un panneau de configuration.

Pour activer un assembly dans une application ou un composant hébergé.

  1. Créez un manifeste qui décrit la dépendance de l’application ou de l’extension sur l’assembly.

    Par exemple, le manifeste pour « YourApplication » peut être créé en copiant l’exemple de manifeste suivant et en remplaçant les valeurs correctes pour assemblyIdentity, processorArchitecture et description. Définissez la valeur de processorArchitecture sur x86 si vous générez sur une plateforme 32 bits et sur ia64 si vous générez sur une plateforme 64 bits. L’élément description contient une description d’option de l’application. Pour plus d’informations sur le format du manifeste, consultez Manifestes d’application.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
        version="1.0.0.0"
        processorArchitecture="x86"
        name="YourCompanyName.YourDivision.YourApp"
        type="win32"
    />
    <description>Your app description here</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Proseware.Research.SampleAssembly"
                version="6.0.0.0"
                processorArchitecture="X86"
                publicKeyToken="0000000000000000"
                language="*"
            />
        </dependentAssembly>
    </dependency>
    </assembly>
    
  2. Créez une ressource dans l’application ou l’extension de type RT_MANIFEST ID 2.

    Par exemple, si le nom de l’application est YourApp, l’application doit contenir les éléments suivants :

    #define MANIFEST_RESOURCE_ID 2
    MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"
    
  3. Compilez l’application avec l’indicateur -DISOLATION_AWARE_ENABLED ou insérez cette instruction avant l’instruction « Windows.h » #include. Dans le cas d’une application avec plusieurs modules, l’indicateur -DISOLATION_AWARE_ENABLED est requis sur tous les modules.

    #define ISOLATION_AWARE_ENABLED 1
    
  4. Testez pour vérifier que les assemblys utilisés par l’application fonctionnent correctement dans l’application et le composant hébergé.

Pour plus d’informations sur l’ajout d’un assembly à des applications sans extensions, consultez Activation d’un assembly dans une application sans extensions.