Configuración del publicador
Un archivo de configuración de publicador redirige globalmente las aplicaciones y ensamblados que tienen una dependencia de una versión de un ensamblado en paralelo para usar otra versión del mismo ensamblado. Esto permite que las aplicaciones y los ensamblados usen el ensamblado actualizado sin tener que volver a generar todas las aplicaciones afectadas.
los archivos de configuración de Publisher pueden proporcionar el publicador de un ensamblado al emitir una nueva versión del ensamblado con correcciones de errores compatibles o actualizaciones de seguridad. La versión actualizada debe ser totalmente compatible con versiones anteriores. Un archivo de configuración del publicador nunca debe usarse para agregar nuevas características a menos que la actualización sea totalmente compatible con versiones anteriores. Los archivos de configuración del publicador nunca se deben usar para incrementar la versión principal o secundaria de un ensamblado. Por ejemplo, no redirija el ensamblado versión 6.0.0.0 a 7.0.0.0 ni a 6.1.0.0.
El publicador del ensamblado solo debe emitir los archivos de configuración del publicador. Los desarrolladores de ensamblados deben firmar ensamblados compartidos en paralelo y archivos de configuración del publicador. Use la misma clave para firmar el ensamblado y los archivos de configuración del publicador asociados. Los archivos de configuración del publicador deben firmarse con las mismas herramientas que se usan para los ensamblados, consulte ejemplo de firma de ensamblados y Crear archivos firmados y catálogos.
Normalmente, la nueva versión de un ensamblado y el archivo de configuración del publicador asociado se instalarán en una actualización de Service Pack. Los archivos de configuración del publicador nunca deben proporcionarse con aplicaciones como redistribuibles porque la instalación de un archivo de configuración de publicador redirige globalmente los ensamblados en el sistema. Si el ensamblado que se actualiza se proporciona como redistribuible, el publicador debe proporcionar lo siguiente.
- Un paquete de Windows Installer (.msi archivo) que incluye la nueva versión del ensamblado con la configuración del publicador. Esto puede instalarse como service pack o QFE porque en este caso el cliente ha elegido actualizar globalmente el sistema. Las aplicaciones nunca deben instalar esta versión del paquete.
- Módulo de combinación de Windows Installer (archivo.msm) que solo incluye la nueva versión del ensamblado. Esta versión puede incluirse con aplicaciones.
Las aplicaciones que requieren una versión mínima del ensamblado deben indicar su dependencia en la versión mínima, si la versión mínima no está disponible en un sistema, la aplicación no se podrá iniciar. Si está disponible como redistribuible, debe incluirse en la configuración de la aplicación.
Por ejemplo, al instalar el siguiente archivo de configuración de publicador se redirige el enlace de la versión 2.0.0.0 de Microsoft.Windows.SampleAssembly a la versión 2.0.1.0. Esto agrega una nueva directiva denominada 1.1.0.0.Policy, en %systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<hashvalue>.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.2.0.Microsoft.Windows.SampleAssembly" version="1.1.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" processorArchitecture="x86" publicKeyToken="75e377300ab7b886"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>
Al instalar el siguiente archivo de configuración del publicador para el mismo ensamblado, se redirige el enlace desde la versión 2.0.0.0 de Microsoft.Windows.SampleAssembly a la versión 2.0.3.0. Esto agrega otra directiva denominada 2.1.0.0.Policy, en %systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<hashvalue>.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.2.0.Microsoft.Windows.SampleAssembly" version="2.1.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" processorArchitecture="x86" publicKeyToken="75e377300ab7b886"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.3.0"/>
</dependentAssembly>
</dependency>
</assembly>