Actualizar ensamblados

La información de este tema identifica las instrucciones recomendadas para actualizar ensamblados mediante parches de Windows Installer.

Los autores de actualizaciones de ensamblado pueden usar las siguientes instrucciones, que se aplican a todos los tipos de ensamblados:

  • El método recomendado para actualizar un ensamblado es cambiar el nombre seguro del ensamblado en la tabla MsiAssemblyName. La nueva versión del ensamblado se puede proporcionar mediante un nuevo componente o el mismo componente que proporciona la versión anterior.
  • Si el mismo componente proporciona la nueva versión del ensamblado, no cambie el tipo de ensamblado de un ensamblado de .NET Framework a uno Win32 o viceversa.
  • Si todas las aplicaciones del sistema deben usar el ensamblado actualizado, debe implementar un ensamblado de directiva. Un ensamblado de directiva puede redirigir las aplicaciones del sistema para usar la nueva versión del ensamblado. Los ensamblados de directiva deben proporcionarse mediante la creación de un nuevo componente.
  • Windows Installer 3.0 o posterior es necesario para desinstalar las actualizaciones del ensamblado. Para obtener más información, vea Quitar parches.
  • La versión más reciente del ensamblado debe contener las mismas versiones o posteriores de los archivos de ensamblados publicados anteriormente.
  • Windows Installer 3.0 puede atender los ensamblados de .NET Framework y Win32 mediante un reemplazo de archivo completo o una actualización diferencial más pequeña. Para obtener más información, visite Reducir el tamaño del parche.
  • Si la actualización cambia el nombre seguro del ensamblado, se requieren la tabla MsiPatchOldAssemblyFile y la tabla MsiPatchOldAssemblyName si el paquete de parche no tiene una tabla MsiPatchSequence. La tabla MsiPatchOldAssemblyFile y la tabla MsiPatchOldAssemblyName no son necesarias si el paquete de parche tiene información de secuenciación de parches en una tabla MsiPatchSequence.
  • Antes de publicar un nuevo parche, pruébelo aplicándolo a todos los publicados anteriormente.

Actualizar ensamblados Win32

Use las instrucciones siguientes al actualizar ensamblados Win32:

  • Cambie el nombre seguro del nuevo ensamblado especificado en la tabla MsiAssemblyName.
  • Si desea que la aplicación use siempre la nueva versión del ensamblado sin afectar a la usada por otras aplicaciones del sistema, use el mismo componente para contener la nueva versión de ensamblado que usó para la versión de ensamblado anterior. Mantenga el mismo ComponentId en la tabla Component. Una vez parcheada la aplicación, contiene únicamente una referencia a la nueva versión del ensamblado. La versión anterior del ensamblado puede permanecer con la nueva versión en la caché global de ensamblados. Esto no afecta a otras aplicaciones del sistema que usan la versión anterior del ensamblado. Cuando se usa el mismo componente para las versiones nuevas y antiguas del ensamblado, la actualización puede ser una revisión diferencial más pequeña.
  • Si la nueva versión del ensamblado no es compatible con todos los sistemas en los que desea instalar la aplicación, puede instalar las versiones nuevas y antiguas del ensamblado como ensamblados en paralelo. Para instalar ambas versiones de ensamblado en paralelo, cree un nuevo componente para que contenga la nueva versión del ensamblado. ComponentId de la tabla Component del nuevo componente debe ser diferente del ComponentId del componente con la versión anterior. Una vez parcheada la aplicación, contiene referencias a ambas versiones de ensamblado. A continuación, la aplicación se puede dirigir a la versión compatible del ensamblado mediante un manifiesto. Cuando se usan distintos componentes para las versiones nuevas y antiguas del ensamblado, la actualización usa un reemplazo de archivo completo.

Ensamblados de .NET Framework

Use las instrucciones siguientes al actualizar ensamblados .NET Framework.

  • Cambie el nombre seguro del nuevo ensamblado especificado en la tabla MsiAssemblyName.

  • Si desea que su aplicación utilice siempre la nueva versión del ensamblado sin afectar a la utilizada por otras aplicaciones del sistema, cambie el nombre fuerte del nuevo ensamblado que se especifica en la tabla MsiAssemblyName, y utilice el mismo componente para contener la nueva versión del ensamblado que utilizó para la versión antigua. Mantenga el mismo ComponentId en la tabla Component. Una vez parcheada la aplicación, contiene únicamente una referencia a la nueva versión del ensamblado. La versión anterior del ensamblado puede permanecer con la nueva versión en la caché global de ensamblados. Esto no afecta a otras aplicaciones del sistema que usan la versión anterior del ensamblado. Cuando se usa el mismo componente para las versiones nuevas y antiguas del ensamblado, la actualización puede ser una revisión diferencial más pequeña.

  • Si la nueva versión del ensamblado no es compatible con todos los sistemas en los que desea instalar la aplicación, puede instalar las versiones nuevas y antiguas del ensamblado como ensamblados en paralelo. Para instalar ambas versiones de ensamblado en paralelo, cambie el nombre seguro del nuevo ensamblado que se especifica en la tabla MsiAssemblyName y cree un nuevo componente para que contenga la nueva versión del ensamblado. ComponentId de la tabla Component del nuevo componente debe ser diferente del ComponentId del componente con la versión anterior. Una vez parcheada la aplicación, contiene referencias a ambas versiones de ensamblado. La aplicación se puede dirigir a la versión compatible del ensamblado mediante un manifiesto. Cuando se usan distintos componentes para las versiones nuevas y antiguas del ensamblado, la actualización usa un reemplazo de archivo completo.

  • Una actualización local sobrescribe la copia de un ensamblado de un .NET Framework en la memoria caché global de ensamblados. Este tipo de actualización de ensamblado no cambia el nombre seguro del ensamblado. Solo se cambia el valor del campo FileVersion de la tabla MsiAssemblyName. La actualización local de un ensamblado de .NET Framework requiere .NET Framework 1.1 SP1 o superior.

    Nota:

    El tipo local de actualización sobrescribe la copia del ensamblado en la caché global y puede interrumpir otras aplicaciones si la nueva versión del ensamblado no es totalmente compatible con versiones anteriores. El método recomendado para actualizar un ensamblado es cambiar el nombre seguro del ensamblado en la tabla MsiAssemblyName.