Tutorial: Implementación manual de una aplicación ClickOnce

Si no puede usar Visual Studio para implementar la aplicación ClickOnce o necesita usar características avanzadas de implementación, como la Implementación de aplicaciones de confianza, debe usar la herramienta de línea de comandos Mage.exe para crear los manifiestos ClickOnce. En este tutorial se describe cómo crear una implementación ClickOnce mediante la versión de la línea de comandos (Mage.exe) o la versión gráfica (MageUI.exe) de la Herramienta de generación y edición de manifiestos.

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.

Prerrequisitos

Este tutorial tiene algunos requisitos previos y opciones que debe elegir antes de crear una implementación.

  • Instale Mage.exe y MageUI.exe.

    Mage.exe y MageUI.exe forman parte del Kit de desarrollo de software de Windows (SDK). Debe tener instalado Windows SDK o la versión de Windows SDK incluida con Visual Studio. Para obtener más información, consulte Windows SDK en MSDN.

  • Proporcione una aplicación que se va a implementar.

    En este tutorial se asume que tiene una aplicación de Windows que está listo para implementar. Esta aplicación se denominará AppToDeploy.

  • Determine cómo se distribuirá la implementación.

    Las opciones de distribución incluyen: web, recurso compartido de archivos o CD. Para obtener más información, consulta ClickOnce Security and Deployment.

  • Determine si la aplicación requiere un nivel de confianza elevado.

    Si la aplicación requiere plena confianza (por ejemplo, acceso total al sistema del usuario), puede usar la opción -TrustLevel de Mage.exe para establecerlo. Si quiere definir un conjunto de permisos personalizado para la aplicación, puede copiar la sección de permisos de Internet o intranet desde otro manifiesto, modificarla para que se adapte a sus necesidades y agregarla al manifiesto de aplicación mediante un editor de texto o MageUI.exe. Para más información, vea Introducción a la implementación de aplicaciones de confianza.

  • Obtenga un certificado Authenticode.

    Debe firmar la implementación con un certificado Authenticode. Puede generar un certificado de prueba mediante Visual Studio, o las herramientas MageUI.exe, MakeCert.exe y Pvk2Pfx.exe, o bien puede obtener un certificado de una entidad de certificación (CA). Si decide usar la implementación de aplicaciones de confianza, también debe realizar una instalación única del certificado en todos los equipos cliente. Para obtener más información, consulta Trusted Application Deployment Overview.

    Nota

    También puede firmar la implementación con un certificado CNG que puede obtener de una entidad de certificación.

  • Asegúrese de que la aplicación no tiene un manifiesto con información de UAC.

    Debe determinar si la aplicación contiene un manifiesto con información de Control de cuentas de usuario (UAC), como un elemento <dependentAssembly>. Para examinar un manifiesto de aplicación, puede usar la utilidad Sysinternals Sigcheck de Windows.

    Si la aplicación contiene un manifiesto con detalles de UAC, debe volver a compilarlo sin la información de UAC. Para un proyecto de C# en Visual Studio, abra las propiedades del proyecto y seleccione la pestaña Aplicación. En la lista desplegable Manifiesto, seleccione Crear la aplicación sin manifiesto. Para un proyecto de Visual Basic en Visual Studio, abra las propiedades del proyecto, seleccione la pestaña Aplicación y haga clic en Ver configuración de UAC. En el archivo de manifiesto abierto, quite todos los elementos del único elemento <asmv1:assembly>.

  • Determine si la aplicación requiere requisitos previos en el equipo cliente.

    Las aplicaciones ClickOnce implementadas desde Visual Studio pueden incluir un arranque previo de instalación (setup.exe) con la implementación. En este tutorial se crean los dos manifiestos necesarios para una implementación ClickOnce. Puede crear un arranque previo mediante la tarea GenerateBootstrapper.

Para implementar una aplicación con la herramienta de línea de comandos Mage.exe

  1. Cree un directorio donde almacenará los archivos de la implementación ClickOnce.

  2. En el directorio de implementación que acaba de crear, cree un subdirectorio de versión. Si es la primera vez que va a implementar la aplicación, asigne al subdirectorio de versión el nombre 1.0.0.0.

    Nota

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

  3. Copie todos los archivos de la aplicación en el subdirectorio de versión, incluidos los archivos ejecutables, los ensamblados, los recursos y los archivos de datos. Si es necesario, puede crear subdirectorios adicionales que contengan archivos adicionales.

  4. Abra el símbolo del sistema de Windows SDK o Visual Studio y cambie al subdirectorio de versión.

  5. Cree el manifiesto de aplicación con una llamada a Mage.exe. La siguiente instrucción crea un manifiesto de aplicación para que el código compilado se ejecute en el procesador Intel x86.

    mage -New Application -Processor x86 -ToFile AppToDeploy.exe.manifest -name "My App" -Version 1.0.0.0 -FromDirectory .
    

    Nota

    Asegúrese de incluir el punto (.) después de la opción -FromDirectory, que indica el directorio actual. Si no incluye el punto, debe especificar la ruta de acceso a los archivos de la aplicación.

  6. Firme el manifiesto de aplicación con el certificado Authenticode. Reemplace mycert.pfx por la ruta de acceso al archivo de certificado. Reemplace passwd por la contraseña del archivo de certificado.

    mage -Sign AppToDeploy.exe.manifest -CertFile mycert.pfx -Password passwd
    

    A partir del SDK de .NET Framework 4.6.2, que se distribuye con Visual Studio y con Windows SDK, mage.exe firma los manifiestos con CNG, así como con certificados Authenticode. Use los mismos parámetros de línea de comandos que con los certificados Authenticode.

  7. Cambie a la raíz del directorio de implementación.

  8. 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 la opción -Install con un valor de false. Si usa el valor predeterminado y los usuarios instalarán la aplicación desde un sitio web o un recurso compartido de archivos, asegúrese de que el valor de la opción -ProviderUrl apunta a la ubicación del manifiesto de aplicación en el servidor web o recurso compartido.

    mage -New Deployment -Processor x86 -Install true -Publisher "My Co." -ProviderUrl "\\myServer\myShare\AppToDeploy.application" -AppManifest 1.0.0.0\AppToDeploy.exe.manifest -ToFile AppToDeploy.application
    
  9. Firme el manifiesto de implementación con el certificado Authenticode o CNG.

    mage -Sign AppToDeploy.application -CertFile mycert.pfx -Password passwd
    
  10. Copie todos los archivos del directorio de implementación en el destino o el medio de implementación. Puede ser una carpeta de un sitio web o un sitio FTP, un recurso compartido de archivos o un CD-ROM.

  11. Proporcione a los usuarios la dirección URL, UNC o los medios físicos necesarios para instalar la aplicación. Si proporciona una dirección URL o un UNC, debe proporcionar a los usuarios la ruta de acceso completa al manifiesto de implementación. Por ejemplo, si AppToDeploy se implementa en http://webserver01/ en el directorio AppToDeploy, la ruta de URL completa sería http://webserver01/AppToDeploy/AppToDeploy.application.

Para implementar una aplicación con la herramienta gráfica MageUI.exe

  1. Cree un directorio donde almacenará los archivos de la implementación ClickOnce.

  2. En el directorio de implementación que acaba de crear, cree un subdirectorio de versión. Si es la primera vez que va a implementar la aplicación, asigne al subdirectorio de versión el nombre 1.0.0.0.

    Nota

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

  3. Copie todos los archivos de la aplicación en el subdirectorio de versión, incluidos los archivos ejecutables, los ensamblados, los recursos y los archivos de datos. Si es necesario, puede crear subdirectorios adicionales que contengan archivos adicionales.

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

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

  6. En la pestaña predeterminada Nombre, escriba el nombre y el número de versión de esta implementación. Especifique también el procesador para el que se compila la aplicación, como x86.

  7. Seleccione la pestaña Archivos y, a continuación, seleccione el botón de puntos suspensivos (...) situado junto al cuadro de texto Directorio de la aplicación. Aparece el cuadro de diálogo Buscar carpeta.

  8. Seleccione el subdirectorio de versión que contiene los archivos de la aplicación y, a continuación, seleccione Aceptar.

  9. Si va a realizar la implementación desde Internet Information Services (IIS), active la casilla Al rellenar, agregar la extensión .deploy a los archivos que no la tengan.

  10. Vaya al 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).

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

  12. Seleccione Archivo y Guardar como en el menú. Aparece el cuadro de diálogo Opciones de firma que le pide que firme el manifiesto de aplicación.

  13. Si tiene un certificado almacenado como un archivo en el sistema de archivos, use la opción Firmar con archivo de certificado y seleccione el certificado del sistema de archivos mediante el botón de puntos suspensivos (...). A continuación, escriba la contraseña del certificado.

    O bien

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

  14. Seleccione Aceptar para firmar el manifiesto de aplicación. Aparece el cuadro de diálogo Guardar como .

  15. En el cuadro de diálogo Guardar como, especifique el directorio de versión y, a continuación, seleccione Guardar.

  16. Seleccione Archivo, Nuevo y Manifiesto de implementación en el menú para crear el manifiesto de implementación.

  17. En la pestaña Nombre, especifique un nombre y un número de versión para esta implementación (1.0.0.0 en este ejemplo). Especifique también el procesador para el que se compila la aplicación, como x86.

  18. Seleccione la pestaña Descripción y especifique valores para Publicador y Producto. (Producto es el nombre que se asigna a la aplicación en el menú Inicio de Windows cuando la aplicación se instala en un equipo cliente para su uso sin conexión).

  19. Seleccione la pestaña Opciones de implementación y, en el cuadro de texto Ubicación de inicio, especifique la ubicación del manifiesto de aplicación en el servidor web o recurso compartido. Por ejemplo, \\myServer\myShare\AppToDeploy.application.

  20. Si agregó la extensión .deploy en un paso anterior, seleccione también Use .deploy file name extension here (Usar la extensión de nombre de archivo .deploy aquí).

  21. Seleccione la pestaña Opciones de actualización y especifique la frecuencia con la que quiere actualizar esta aplicación. Si la aplicación usa UpdateCheckInfo para comprobar si hay actualizaciones, desactive la casilla Esta aplicación debe buscar actualizaciones.

  22. Seleccione la pestaña Referencia de la aplicación y, a continuación, vaya al botón Seleccionar manifiesto. Se abrirá un cuadro de diálogo.

  23. Seleccione el manifiesto de aplicación que creó anteriormente y, a continuación, seleccione Abrir.

  24. Seleccione Archivo y Guardar como en el menú. Aparece el cuadro de diálogo Opciones de firma que le pide que firme el manifiesto de implementación.

  25. Si tiene un certificado almacenado como un archivo en el sistema de archivos, use la opción Firmar con archivo de certificado y seleccione el certificado del sistema de archivos mediante el botón de puntos suspensivos (...). A continuación, escriba la contraseña del certificado.

    O bien

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

  26. Vaya a Aceptar para firmar el manifiesto de implementación. Aparece el cuadro de diálogo Guardar como .

  27. En el cuadro de diálogo Guardar como, retroceda un directorio desde la raíz de la implementación y seleccione Guardar.

  28. Copie todos los archivos del directorio de implementación en el destino o el medio de implementación. Puede ser una carpeta de un sitio web o un sitio FTP, un recurso compartido de archivos o un CD-ROM.

  29. Proporcione a los usuarios la dirección URL, UNC o los medios físicos necesarios para instalar la aplicación. Si proporciona una dirección URL o un UNC, debe proporcionar a los usuarios la ruta de acceso completa al manifiesto de implementación. Por ejemplo, si AppToDeploy se implementa en http://webserver01/ en el directorio AppToDeploy, la ruta de URL completa sería http://webserver01/AppToDeploy/AppToDeploy.application.

Pasos siguientes

Cuando necesite implementar una nueva versión de la aplicación, cree un directorio con el nombre de la nueva versión (por ejemplo, 1.0.0.1) y copie los nuevos archivos de aplicación en el directorio nuevo. A continuación, debe seguir los pasos anteriores para crear y firmar un nuevo manifiesto de aplicación, y actualizar y firmar el manifiesto de implementación. Tenga cuidado de especificar la misma versión posterior en las llamadas a Mage.exe-New y -Update, ya que ClickOnce solo actualiza versiones posteriores, en el que el número entero de la izquierda es el más significativo. Si usó MageUI.exe, puede actualizar el manifiesto de implementación abriéndolo, seleccionando la pestaña Referencia de la aplicación, yendo al botón Seleccionar manifiesto y, a continuación, seleccionando el manifiesto de aplicación actualizado.