Tutorial: Implementación manual de una aplicación ClickOnce que no requiera el proceso de volver a firmar y que conserve la información de personalización de marca

Al crear una aplicación ClickOnce y, a continuación, dársela a un cliente para que la publicara e implementara, el cliente normalmente tenía que actualizar el manifiesto de implementación y volver a firmarlo. Aunque este sigue siendo el método preferido en la mayoría de los casos, .NET Framework 3.5 le permite crear implementaciones ClickOnce que los clientes pueden implementar sin tener que volver a generar un nuevo manifiesto de implementación. Para más información, consulte Implementación de aplicaciones ClickOnce para los servidores de pruebas y producción sin nueva firma.

Cuando crea una aplicación ClickOnce y, a continuación, se la da a un cliente que la publique e implemente, la aplicación puede usar la personalización de marca del cliente o puede conservar la suya propia. Por ejemplo, si la aplicación es una única aplicación de su propiedad, es posible que desee conservar su personalización de marca. Si la aplicación está muy personalizada para cada cliente, es posible que desee usar la personalización de marca del cliente. .NET Framework 3.5 le permite conservar la personalización de marca, la información del publicador y la firma de seguridad cuando se le proporciona una aplicación a una organización para que la implemente. Para más información, consulte Creación de aplicaciones ClickOnce para que las implementen terceros.

Nota:

En este tutorial se crean implementaciones manualmente mediante la herramienta de línea de comandos Mage.exe o la herramienta gráfica MageUI.exe. Para más información sobre las implementaciones manuales, consulte Tutorial: Implementación manual de una aplicación ClickOnce.

Nota:

En ClickOnce para .NET Core 3.1 y .NET 5, o posterior, use dotnet-mage.exe en lugar de Mage.exe. Para obtener más información, consulte ClickOnce para .NET.

Requisitos previos

Para realizar los pasos de este tutorial, necesita lo siguiente:

  • Una aplicación de Windows Forms que esté preparado para implementar. Esta aplicación se denominará WindowsFormsApp1.

  • Visual Studio o Windows SDK.

Para implementar una aplicación ClickOnce con varias implementaciones y compatibilidad con la personalización de marca mediante Mage.exe

  1. Abra un símbolo del sistema de Visual Studio o un símbolo del sistema de Windows SDK y cambie al directorio en el que almacenará los archivos ClickOnce.

  2. Cree un directorio con un nombre posterior al de la versión actual de la implementación. Si es la primera vez que va a implementar la aplicación, es probable que elija 1.0.0.0.

    Nota

    La versión de la implementación puede ser distinta de la versión de los archivos de aplicación.

  3. Cree un subdirectorio denominado bin y copie todos los archivos de la aplicación en él, incluidos los archivos ejecutables, los ensamblados, los recursos y los archivos de datos.

  4. Genere el manifiesto de aplicación con una llamada a Mage.exe.

    mage -New Application -ToFile 1.0.0.0\WindowsFormsApp1.exe.manifest -Name "Windows Forms App 1" -Version 1.0.0.0 -FromDirectory 1.0.0.0\bin -UseManifestForTrust true -Publisher "A. Datum Corporation"
    
  5. Firme el manifiesto de aplicación con el certificado digital.

    mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx
    
  6. Genere el manifiesto de implementación con una llamada a Mage.exe. De forma predeterminada, Mage.exe marcará la implementación de ClickOnce como una aplicación instalada, de modo que se pueda ejecutar tanto en línea como sin conexión. Para que la aplicación esté disponible solo cuando el usuario esté en línea, use el argumento -i con un valor de f. Puesto que esta aplicación aprovechará la característica de implementación múltiple, excluya el argumento -providerUrl para Mage.exe. (En las versiones de .NET Framework anteriores a la versión 3.5, la exclusión de -providerUrl de una aplicación sin conexión producirá un error).

    mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest
    
  7. No firme el manifiesto de implementación.

  8. Proporcione todos los archivos al cliente, el cual implementará la aplicación en su red.

  9. En este momento, el cliente debe firmar el manifiesto de implementación con su propio certificado autogenerado. Por ejemplo, si el cliente trabaja para una empresa denominada Adventure Works, puede generar un certificado autofirmado mediante la herramienta MakeCert.exe. A continuación, use la herramienta Pvk2pfx.exe para combinar los archivos creados mediante MakeCert.exe en un archivo PFX que se pueda pasar a Mage.exe.

    makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer
    pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx
    
  10. Posteriormente, el cliente usa este certificado para firmar el manifiesto de implementación.

    mage -Sign WindowsFormsApp1.application -CertFile MyCert.pfx
    
  11. El cliente implementa la aplicación para sus usuarios.

Para implementar una aplicación ClickOnce con varias implementaciones y compatibilidad con la personalización de marca mediante MageUI.exe

  1. Abra un símbolo del sistema de Visual Studio o un símbolo del sistema de Windows SDK y vaya al directorio en el que almacenará los archivos ClickOnce.

  2. Cree un subdirectorio denominado bin y copie todos los archivos de la aplicación en él, incluidos los archivos ejecutables, los ensamblados, los recursos y los archivos de datos.

  3. Cree un subdirectorio con un nombre posterior al de la versión actual de la implementación. Si es la primera vez que va a implementar la aplicación, es probable que elija 1.0.0.0.

    Nota

    La versión de la implementación puede ser distinta de la versión de los archivos de aplicación.

  4. Mueva el directorio \bin al directorio que creó en el paso 2.

  5. Inicie la herramienta gráfica MageUI.exe.

    MageUI.exe
    
  6. Cree un nuevo manifiesto de aplicación seleccionando Archivo, Nuevo y Manifiesto de aplicación en el menú.

  7. En la pestaña predeterminada Nombre, escriba el nombre y el número de versión de esta implementación. Además, proporcione un valor para Publisher, el cual se usará como nombre de carpeta para el vínculo de acceso directo de la aplicación en el menú Inicio cuando se implemente.

  8. Seleccione la pestaña Opciones de la aplicación y haga clic en Usar manifiesto de la aplicación para la información de confianza. Esto habilitará la personalización de marca de terceros para esta aplicación ClickOnce.

  9. Seleccione la pestaña Archivos y, a continuación, haga clic en el botón Examinar situado junto al cuadro de texto Directorio de la aplicación.

  10. Seleccione el directorio que contiene los archivos de aplicación que creó en el paso 2 y haga clic en Aceptar en el cuadro de diálogo de selección de carpetas.

  11. Haga clic en el botón Rellenar para agregar todos los archivos de aplicación a la lista de archivos. Si la aplicación contiene más de un archivo ejecutable, marque el archivo ejecutable principal para esta implementación como aplicación de inicio seleccionando Punto de entrada en la lista desplegable Tipo de archivo. (Si la aplicación contiene solo un archivo ejecutable, MageUI.exe lo marcará por usted).

  12. Seleccione la pestaña Permisos necesarios y seleccione el nivel de confianza que necesita que la aplicación imponga. El valor predeterminado es Plena confianza, que será adecuado para la mayoría de las aplicaciones.

  13. Seleccione Archivo, Guardar en el menú y guarde el manifiesto de aplicación. Se le pedirá que firme el manifiesto de aplicación al guardarlo.

  14. Si tiene un certificado almacenado como un archivo en el sistema de archivos, use la opción Firmar como archivo de certificado y seleccione el certificado del sistema de archivos mediante el botón de puntos suspensivos (...).

    O bien

    Si el certificado se mantiene en un almacén de certificados al que se puede acceder desde el equipo, seleccione la opción Firmar con certificado almacenado y seleccione el certificado de la lista proporcionada.

  15. Seleccione Archivo, Nuevo, Manifiesto de implementación en el menú para crear el manifiesto de implementación y, a continuación, en la pestaña Nombre, proporcione un nombre y un número de versión (1.0.0.0 en este ejemplo).

  16. Cambie a la pestaña Actualizar y especifique la frecuencia con la que desea que se actualice esta aplicación. Si la aplicación usa la API de implementación de ClickOnce para comprobar si hay actualizaciones, desactive la casilla etiquetada como Esta aplicación debe buscar actualizaciones.

  17. Cambie a la pestaña Referencia de la aplicación. Para rellenar previamente todos los valores de esta pestaña, haga clic en el botón Seleccionar manifiesto y seleccione el manifiesto de aplicación que creó en los pasos anteriores.

  18. Elija Guardar y guarde el manifiesto de implementación en el disco. Se le pedirá que firme el manifiesto de aplicación al guardarlo. Haga clic en Cancelar para guardar el manifiesto sin firmarlo.

  19. Proporcione todos los archivos de aplicación al cliente.

  20. En este momento, el cliente debe firmar el manifiesto de implementación con su propio certificado autogenerado. Por ejemplo, si el cliente trabaja para una empresa denominada Adventure Works, puede generar un certificado autofirmado mediante la herramienta MakeCert.exe. A continuación, use la herramienta Pvk2pfx.exe para combinar los archivos creados mediante MakeCert.exe en un archivo PFX que se pueda pasar a MageUI.exe.

    makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer
    pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx
    
  21. Con el certificado generado, el cliente ahora firma el manifiesto de implementación abriéndolo en MageUI.exey, a continuación, guardándolo. Cuando aparece el cuadro de diálogo de firma, el cliente selecciona la opción Firmar como archivo de certificado y elige el archivo PFX que ha guardado en el disco.

  22. El cliente implementa la aplicación para sus usuarios.