Usar ensamblados en paralelo

Use el procedimiento siguiente para desarrollar una nueva aplicación o actualizar una aplicación existente para usar los ensamblados en paralelo disponibles en Microsoft u otros publicadores de ensamblados en paralelo. Para obtener una lista de los ensamblados en paralelo proporcionados actualmente por Microsoft, consulte Ensamblados en paralelo de Microsoft compatibles. Tenga en cuenta que la aplicación debe ejecutarse al menos en Windows XP para instalar los ensamblados como ensamblados en paralelo. Para obtener más información, vea Directrices para crear ensamblados en paralelo.

Para agregar un ensamblado en paralelo a una aplicación

  1. Identifique los ensamblados en paralelo que requiere la aplicación. A partir de Windows XP, estos ensamblados en paralelo y sus manifiestos de ensamblado se instalan con el sistema operativo, pero no están registrados globalmente.

  2. Use un editor XML para crear un manifiesto de aplicación. Consulte el manifiesto de aplicación de ejemplo siguiente. Para obtener más información, vea Manifiestos de aplicación en la referencia de archivos de manifiesto.

  3. Escriba los valores de atributo en el subelemento DEF-context assemblyIdentity del manifiesto de aplicación que define de forma única la aplicación. Para obtener más información sobre el ensamblado DEF-contextIdentity, vea Manifiestos de aplicación.

  4. Si el ensamblado contiene ensamblados dependientes, escriba los valores de atributo en los subelementos REF-context assemblyIdentity correspondientes del manifiesto de aplicación. Para obtener más información sobre el ensamblado ref-contextIdentity, vea Manifiestos de aplicación.

    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.SampleAssembly"
                        version="6.0.0.0" processorArchitecture="x86"
                        publicKeyToken="a5aaf5ba15723d5"/>
    
  5. Puede incluir el manifiesto de aplicación en el archivo de encabezado ejecutable binario de la aplicación.

    En este caso, agregue también la siguiente línea al archivo de encabezado de aplicación:

    CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST "YourApp.exe.manifest"

    Como alternativa, puede colocar un archivo de manifiesto independiente en el mismo directorio que el archivo ejecutable de la aplicación. El sistema operativo carga primero el manifiesto desde el sistema de archivos y, a continuación, comprueba la sección de recursos del ejecutable. La versión del sistema de archivos tiene prioridad.

  6. Los ensamblados compartidos deben instalarse con la versión 2.0 del instalador de Windows. Cree un paquete de instalador de Windows tal y como se describe en How Do I Install Win32 Assemblies for Side-by-Side Sharing on Windows XP?.

  7. Los ensamblados privados se pueden instalar mediante la versión 2.0 del instalador de Windows. Cree un paquete del instalador de Windows tal y como se describe en How Do I Install Win32 Assemblies for the Private Use of an Application on Windows XP?. También puede usar cualquier otro instalador para copiar un ensamblado privado y su manifiesto en la misma carpeta que el archivo ejecutable de la aplicación.

  8. Pruebe la aplicación para asegurarse de los resultados. Tenga en cuenta que el equipo de prueba no debe tener registrado el ensamblado en paralelo.

  9. Implemente la aplicación o actualice como un paquete del instalador de Windows.

Manifiesto de aplicación de ejemplo

A continuación se muestra un ejemplo de un manifiesto de aplicación:

<?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>