Compartir a través de


Habilitar un ensamblado en una aplicación que hospeda un archivo DLL, una extensión o un Panel de control

Si la aplicación hospeda un archivo DLL de terceros, una extensión, un complemento o un panel de control, es posible que desee habilitar un ensamblado en la aplicación, sin habilitar también este ensamblado para los componentes hospedados. Esto puede ser el caso cuando un componente hospedado requiere cambios de código para usar el ensamblado. Como desarrollador de aplicaciones, es posible que no pueda realizar cambios en estos componentes de terceros. En este caso, debe seguir el procedimiento descrito en esta sección para que la aplicación pueda usar el ensamblado sin afectar a los componentes hospedados.

  • Para habilitar un ensamblado en una aplicación sin afectar a los archivos DLL, extensiones, complementos o paneles de control hospedados, se debe incluir un manifiesto que describa la dependencia de la aplicación en el ensamblado como recurso. Los componentes hospedados que no se habilitan con el ensamblado no deben incluir manifiestos que describen esta dependencia.
  • Para habilitar un ensamblado en una aplicación y sus archivos DLL hospedados, extensiones, complementos o paneles de control, incluya manifiestos como recursos tanto en la aplicación como en sus componentes hospedados. Los manifiestos incluidos en la aplicación y en los componentes hospedados deben describir cada uno de ellos una dependencia del ensamblado. Normalmente, el desarrollador de aplicaciones agrega un manifiesto a la aplicación y el desarrollador de componentes hospedados agrega un manifiesto al archivo DLL, la extensión, el complemento o el panel de control.

El método siguiente se puede usar para agregar un manifiesto a una aplicación o a un componente hospedado que sea un archivo DLL, una extensión, un complemento o un panel de control.

Para habilitar un ensamblado en una aplicación o un componente hospedado.

  1. Cree un manifiesto que describa la dependencia de la aplicación o extensión en el ensamblado.

    Por ejemplo, el manifiesto de "YourApplication" se puede crear copiando el siguiente manifiesto de ejemplo y sustituyendo los valores correctos para assemblyIdentity, processorArchitecture y description. Establezca el valor de processorArchitecture en x86 si se basa en una plataforma de 32 bits y en ia64 si se basa en una plataforma de 64 bits. El elemento description contiene una descripción de la opción de la aplicación. Para obtener más información sobre el formato del manifiesto, consulte Manifiestos de aplicación.

    <?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. Cree un recurso en la aplicación o extensión de tipo RT_MANIFEST id. 2.

    Por ejemplo, si el nombre de la aplicación es YourApp, la aplicación debe contener lo siguiente:

    #define MANIFEST_RESOURCE_ID 2
    MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"
    
  3. Compile la aplicación con la marca -DISOLATION_AWARE_ENABLED o inserte esta instrucción antes de la instrucción #include "Windows.h". En el caso de una aplicación con varios módulos, se requiere la marca -DISOLATION_AWARE_ENABLED en todos los módulos.

    #define ISOLATION_AWARE_ENABLED 1
    
  4. Pruebe para asegurarse de que los ensamblados que usa la aplicación funcionan correctamente en la aplicación y el componente hospedado.

Para obtener más información sobre cómo agregar un ensamblado a aplicaciones sin extensiones, consulte Habilitación de un ensamblado en una aplicación sin extensiones.