Empaquetado de una aplicación de escritorio con Desktop App ConverterPackage a desktop application using the Desktop App Converter

Nota

La herramienta Desktop App Converter está en desuso.The Desktop App Converter tool is deprecated. En su lugar, se recomienda usar la herramienta MSIX Packaging Tool.We recommend that you use the MSIX Packaging Tool instead.

Icono de DAC

Desktop App Converter (DAC) crea paquetes para que las aplicaciones de escritorio se integren con las características de Windows más recientes, incluida la distribución y el mantenimiento a través de la Microsoft Store.The Desktop App Converter (DAC) creates packages for desktop applications to integrate with the latest Windows features, including distribution and servicing via the Microsoft Store. Esto incluye aplicaciones de Win32 y aplicaciones que hayas creado mediante .NET 4.6.1.This includes Win32 apps and apps that you've created by using .NET 4.6.1.

Obtener Desktop App ConverterGet the Desktop App Converter

Aunque el término "Converter" aparece en el nombre de esta herramienta, realmente no convierte la aplicación.While the term "Converter" appears in the name of this tool, it doesn't actually convert your app. La aplicación permanece sin cambios.Your application remains unchanged. Sin embargo, esta herramienta genera un paquete de la aplicación de Windows con una identidad del paquete y la capacidad de llamar a una gran variedad de API de WinRT.However, this tool generates a Windows app package with a package identity and the ability to call a vast range of WinRT APIs.

Puedes instalar dicho paquete usando el cmdlet de PowerShell Add-AppxPackage en el equipo de desarrollo.You can install that package by using the Add-AppxPackage PowerShell cmdlet on your development machine.

El convertidor ejecuta el instalador de escritorio en un entorno de Windows aislado mediante una imagen base limpia proporcionada como parte de la descarga del convertidor.The converter runs the desktop installer in an isolated Windows environment by using a clean base image provided as part of the converter download. Captura cualquier E/S del sistema de archivos y del registro realizada por el instalador de escritorio y la empaqueta como parte de la salida.It captures any registry and file system I/O made by the desktop installer and packages it as part of the output.

Importante

Desktop App Converter es compatible con Windows 10, versión 1607 y versiones posteriores.Desktop App Converter is supported on Windows 10, version 1607, and later. Solo se puede usar en proyectos que tengan como plataforma de destino Windows 10 Anniversary Update (10.0; compilación 14393) o una versión posterior en Visual Studio.It can only be used in projects that target Windows 10 Anniversary Update (10.0; Build 14393) or a later release in Visual Studio.

DAC hace algo más que simplemente generar un paquete para tiThe DAC does more than just generate a package for you

Aquí te mostramos algunas de las cosas adicionales que puede hacer.Here's a few extra things it can do for you.

Windows 10 Creators UpdateWindows 10 Creators Update

✔️ Registra automáticamente los controladores de vista previa, los de miniatura, los de propiedad, las reglas del firewall y los marcadores de dirección URL.Automatically register your preview handlers, thumbnail handlers, property handlers, firewall rules, URL flags.

✔️ Registra automáticamente las asignaciones de tipo de archivo que permiten a los usuarios agrupar archivos mediante la columna Kind del Explorador de archivos.Automatically register file type mappings that enable users to group files by using the Kind column in File Explorer.

✔️ Registra los servidores COM públicos.Register your public COM servers.

Windows 10 Anniversary Update o posteriorWindows 10 Anniversary Update or later

✔️ Firma el paquete automáticamente para que puedas probar la aplicación.Automatically sign your package so that you can test your app.

✔️ Valida la aplicación con los requisitos de Microsoft Store y la aplicación empaquetada.Validate your application against packaged app and Microsoft Store requirements.

Para obtener una lista completa de estas opciones, consulta la sección Parámetros de esta guía.To find a complete list of options, see the Parameters section of this guide.

Si estás listo para crear tu paquete, comencemos.If you're ready to create your package, let's start.

Primero, prepara tu aplicaciónFirst, prepare your application

Revisa esta guía antes de empezar a crear un paquete para tu aplicación: Preparación del empaquetado de una aplicación de escritorio.Review this guide before you begin creating a package for your application: Prepare to package a desktop application.

Asegúrate de que el sistema puede ejecutar el convertidorMake sure that your system can run the converter

Asegúrate de que el sistema cumple los requisitos siguientes:Make sure that your system meets the following requirements:

Inicia Desktop App ConverterStart the Desktop App Converter

  1. Descarga e instala Desktop App Converter.Download and install the Desktop App Converter.

  2. Ejecuta Desktop App Converter como administrador.Run the Desktop App Converter as an administrator.

    ejecutar DAC como administrador

    Aparece una ventana de consola.A console window appears. Usarás esa ventana de consola para ejecutar comandos.You'll use that console window to run commands.

Configuración de algunas cosas (solo para aplicaciones que tengan instaladores)Set a few things up (apps with installers only)

Puedes pasar a la siguiente sección si la aplicación no tiene instalador.You can skip ahead to the next section if your application doesn't have an installer.

  1. Identifica el número de versión del sistema operativo.Identify the version number of your operating system.

    Para ello, escribe winver en el cuadro de diálogo Ejecutar y luego elige el botón Aceptar.To do that, type winver in the Run dialog box, and then choose the OK button.

    winver

    Encontrarás la versión de la compilación de Windows en el cuadro de diálogo Acerca de Windows.You'll find the version of your Windows build in the About Windows dialog box.

    Versión de Windows 10

  2. Descarga la imagen base de Desktop App Converter adecuada.Download the appropriate Desktop app Converter base image.

    Asegúrate de que el número de versión que aparece en el nombre del archivo coincide con el número de versión de la compilación de Windows.Make sure that the version number that appears in the name of the file matches the version number of your Windows build.

    Importante

    Si usas el número de compilación 15063, y la versión secundaria de esa compilación es mayor o igual a .483 (por ejemplo: 15063.540), asegúrate de descargar el archivo BaseImage-15063-UPDATE.wim.If you're using build number 15063, and the minor version of that build is equal to or greater than .483 (For example: 15063.540), make sure to download the BaseImage-15063-UPDATE.wim file. Si la versión secundaria de esa compilación es menor que .483, descarga el archivo BaseImage 15063.wim.If the minor version of that build is less than .483, download the BaseImage-15063.wim file. Si ya has instalado una versión compatible de este archivo base, puedes corregirlo.If you've already setup an incompatible version of this base file, you can fix it. En esta entrada de blog se explica cómo hacerlo.This blog post explains how to do that.

  3. Coloca el archivo descargado en algún lugar del equipo donde puedas encontrarlo más tarde.Place the downloaded file anywhere on your computer where you'll be able to find it later.

  4. En la ventana de consola que apareció cuando iniciaste Desktop App Converter, ejecuta el siguiente comando: Set-ExecutionPolicy bypass.In the console window that appeared when you started the Desktop App Converter, run this command: Set-ExecutionPolicy bypass.

  5. Configura el convertidor mediante la ejecución de este comando: DesktopAppConverter.exe -Setup -BaseImage .\BaseImage-1XXXX.wim -Verbose.Set up the converter by running this command: DesktopAppConverter.exe -Setup -BaseImage .\BaseImage-1XXXX.wim -Verbose.

  6. Si se te solicita, reinicia el equipo.Restart your computer if you're prompted to do so.

    Aparecerán mensajes de estado en la ventana de consola a medida que el convertidor amplía la imagen base.Status messages appear in the console window as the converter expands the base image. Si no ves los mensajes de estado, presiona cualquier tecla.If you don't see any status messages, press any key. Es posible que esta acción cause que el contenido de la ventana de consola se actualice.This can cause the contents of the console window to refresh.

    mensajes de estado en la ventana de consola

    Cuando la imagen base se amplíe totalmente, ve a la siguiente sección.When the base image is fully expanded, move to the next section.

Empaquetado de una aplicaciónPackage an app

Para empaquetar la aplicación, ejecuta el comando DesktopAppConverter.exe en la ventana de consola que se abrió cuando iniciaste Desktop App Converter.To Package your app, run the DesktopAppConverter.exe command in the console window that opened when you started the Desktop App Converter.

Especificarás el nombre del paquete, el editor y el número de versión de la aplicación mediante parámetros.You'll specify the package name, publisher and version number of the application by using parameters.

Nota

Si has reservado el nombre de la aplicación en Microsoft Store, puedes obtener los nombres de paquete y editor mediante el Centro de partners.If you've reserved your app name in the Microsoft Store, you can obtain the package and publisher names by using Partner Center. Si vas a transferir localmente la aplicación a otros sistemas, puedes proporcionar tus propios nombres a estos elementos, siempre y cuando el nombre del publicador que elijas coincida con el nombre que aparece en el certificado que uses para firmar la aplicación.If you plan to sideload your app onto other systems, you can provide your own names for these as long as the publisher name that you choose matches the name on the certificate you use to sign your app.

Un vistazo rápido a los parámetros de comandoA quick look at command parameters

Estos son los parámetros necesarios.Here are the required parameters.

DesktopAppConverter.exe
-Installer <String>
-Destination <String>
-PackageName <String>
-Publisher <String>
-Version <Version>

Puedes leer acerca de cada uno de ellos aquí.You can read about each one here.

EjemplosExamples

Aquí te mostramos algunas de las formas más habituales de empaquetar la aplicación.Here's a few common ways to package your app.

Empaquetado de una aplicación que tiene un archivo instalador (.msi)Package an application that has an installer (.msi) file

Apunta al archivo instalador mediante el parámetro Installer.Point to the installer file by using the Installer parameter.

DesktopAppConverter.exe -Installer C:\Installer\MyAppSetup.msi -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1

Importante

Hay dos cosas importantes que hay que tener en cuenta aquí.There are two important things to keep in mind here. En primer lugar, asegúrate de que el instalador se encuentra en una carpeta independiente y que solo aquellos archivos relacionados con el instalador están en esa carpeta.First, make sure that your installer is located in an independent folder and that only files related to that installer are in the same folder. El convertidor copia todo el contenido de esa carpeta en el entorno aislado de Windows.The converter copies all of the contents of that folder to the isolated Windows environment.
En segundo lugar, si el Centro de partners asigna una identidad al paquete que comienza por un número, asegúrate también de pasar el parámetro -AppId y usa solo el sufijo de cadena (después del separador de punto) como el valor de dicho parámetro.Secondly, if Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

Si el instalador incluye instaladores para marcos o bibliotecas dependientes, es posible que debas organizar las cosas de una manera un poco diferente.If your installer includes installers for dependent libraries or frameworks, you might have to organize things a bit a differently. Consulta Encadenamiento de varios instaladores con el Puente de dispositivo de escritorio.See Chaining multiple installers with the Desktop Bridge.

Empaquetado de una aplicación que tiene un archivo ejecutable de configuraciónPackage an application that has a setup executable file

Apunta al archivo ejecutable de instalación mediante el parámetro Installer.Point to the setup executable by using the Installer parameter.

DesktopAppConverter.exe -Installer C:\Installer\MyAppSetup.exe -InstallerArguments "/S" -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1

Importante

Si el Centro de partners asigna una identidad al paquete que comienza por un número, asegúrate también de pasar el parámetro -AppId y usa solo el sufijo de cadena (después del separador de punto) como el valor de dicho parámetro.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

El parámetro InstallerArguments es opcional.The InstallerArguments parameter is an optional parameter. Sin embargo, dado que Desktop App Converter necesita que el instalador se ejecute en modo de instalación desatendida, es posible que debas usar este parámetro si la aplicación necesita marcas silenciosas para poder ejecutarse en silencio.However, because the Desktop App Converter needs your installer to run in unattended mode, you might have to use it if your application needs silent flags to run silently. La marca /S es una marca silenciosa muy común, pero es posible que la marca que uses sea diferente en función de qué tecnología de instalador usaste para crear el archivo de instalación.The /S flag is a very common silent flag, but the flag that you use might be different depending on which installer technology you used to create the setup file.

Empaquetado de una aplicación que no tiene un instaladorPackage an application that doesn't have an installer

En este ejemplo, se usa el parámetro Installer para apuntar a la carpeta raíz de los archivos de la aplicación.In this example, use the Installer parameter to point to the root folder of your application files.

Usa el parámetro AppExecutable para apuntar al archivo ejecutable de la aplicación.Use the AppExecutable parameter to point to your apps executable file.

DesktopAppConverter.exe -Installer C:\Installer\MyApp\ -AppExecutable MyApp.exe -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1

Importante

Si el Centro de partners asigna una identidad al paquete que comienza por un número, asegúrate también de pasar el parámetro -AppId y usa solo el sufijo de cadena (después del separador de punto) como el valor de dicho parámetro.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

Empaquetado de una aplicación, firma de la aplicación y ejecución de comprobaciones de validación en el paquetePackage an app, sign the app, and run validation checks on the package

Este ejemplo es similar al primero, salvo que aquí se muestra cómo firmar la aplicación para realizar la prueba local y validarla con los requisitos de la aplicación empaquetada y Microsoft Store.This example is similar to first one except it shows how you can sign your application for local testing, and then validate your application against packaged app and Microsoft Store requirements.

DesktopAppConverter.exe -Installer C:\Installer\MyAppSetup.exe -InstallerArguments "/S" -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1 -MakeAppx -Sign -Verbose -Verify

Importante

Si el Centro de partners asigna una identidad al paquete que comienza por un número, asegúrate también de pasar el parámetro -AppId y usa solo el sufijo de cadena (después del separador de punto) como el valor de dicho parámetro.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

El parámetro Sign genera un certificado y firma con él la aplicación.The Sign parameter generates a certificate and then signs your application with it. Para ejecutar la aplicación, tendrás que instalar el certificado generado.To run your app, you'll have to install that generated certificate. Para obtener información sobre cómo hacerlo, consulta la sección Ejecución de la aplicación empaquetada de esta guía.To learn how, see the Run the packaged app section of this guide.

Puedes validar la aplicación mediante el parámetro Verify.You can validate you application by using the Verify parameter.

Un vistazo rápido a los parámetros opcionalesA quick look at optional parameters

Los parámetros Sign y Verify son opcionales.The Sign and Verify parameters are optional. Hay muchos más parámetros opcionales.There are many more optional parameters. Estos son algunos de los parámetros opcionales que se usan con mayor frecuencia.Here are some of the more commonly used optional parameters.

[-ExpandedBaseImage <String>]
[-AppExecutable <String>]
[-AppFileTypes <String>]
[-AppId <String>]
[-AppDisplayName <String>]
[-AppDescription <String>]
[-PackageDisplayName <String>]
[-PackagePublisherDisplayName <String>]
[-MakeAppx]
[-LogFile <String>]
[<CommonParameters>]

Puedes leer acerca de todos ellos en la siguiente sección.You can read about all of them in the next section.

Referencia de parámetrosParameter Reference

Esta es la lista completa de los parámetros (organizada por categorías) que puedes usar al ejecutar Desktop App Converter.Here's the complete list of parameters (organized by category) that you can use when you run the Desktop App Converter.

También puedes ver toda la lista ejecutando el comando Get-Help en la ventana de consola de la aplicación.You can also view the entire list by running the Get-Help command in the app console window.

Parámetros de configuraciónSetup parameters
-Setup [<SwitchParameter>]-Setup [<SwitchParameter>] RequeridoRequired Ejecuta DesktopAppConverter en modo de instalación.Runs DesktopAppConverter in setup mode. El modo de instalación admite la expansión de una imagen base proporcionada.Setup mode supports expanding a provided base image.
-BaseImage <Cadena>-BaseImage <String> RequeridoRequired Ruta de acceso completa a una imagen base no expandida.Full path to an unexpanded base image. Este parámetro es necesario si se especifica el programa de instalación.This parameter is required if -Setup is specified.
-LogFile <Cadena>-LogFile <String> OpcionalOptional Especifica un archivo de registro.Specifies a log file. Si se omite, se creará una ubicación temporal del archivo de registro.If omitted, a log file temporary location will be created.
-NatSubnetPrefix <Cadena>-NatSubnetPrefix <String> OpcionalOptional Valor del prefijo que se usará para la instancia de Nat.Prefix value to be used for the Nat instance. Por lo general, se recomienda que lo cambies solo si el equipo host se adjunta al mismo intervalo de subred que el NetNat del convertidor.Typically, you would want to change this only if your host machine is attached to the same subnet range as the converter's NetNat. Puedes consultar la configuración actual del NetNat del convertidor mediante el cmdlet NetNat Get.You can query the current converter NetNat config by using the Get-NetNat cmdlet.
-NoRestart [<SwitchParameter>]-NoRestart [<SwitchParameter>] RequeridoRequired No solicites el reinicio mientras se ejecute la instalación (es necesario reiniciar el sistema para habilitar la función de contenedor).Don't prompt for reboot when running setup (reboot is required to enable the container feature).
Parámetros de conversiónConversion parameters
-AppInstallPath <Cadena>-AppInstallPath <String> OpcionalOptional La ruta de acceso completa a la carpeta raíz de la aplicación para los archivos instalados si se hubiera instalado la aplicación (por ejemplo, "C:\Archivos de programa (x86)\MyApp").The full path to your application's root folder for the installed files if it were installed (e.g., "C:\Program Files (x86)\MyApp").
-Destination <Cadena>-Destination <String> RequeridoRequired El destino deseado para la salida de appx del convertidor: DesktopAppConverter puede crear esta ubicación si ya no existe.The desired destination for the converter's appx output - DesktopAppConverter can create this location if it doesn't already exist.
-Installer <Cadena>-Installer <String> RequeridoRequired La ruta de acceso al instalador de la aplicación se debe poder ejecutar de forma desatendida o silenciosa.The path to the installer for your application - must be able to run unattended/silently. Conversión sin instalador, esta es la ruta de acceso al directorio raíz de los archivos de la aplicación.No-installer conversion, this is the path to the root directory of your application files.
-InstallerArguments <Cadena>-InstallerArguments <String> OpcionalOptional Una lista separada por comas o una cadena de argumentos para forzar al instalador para que se ejecute de forma desatendida o silenciosa.A comma-separated list or string of arguments to force your installer to run unattended/silently. Este parámetro es opcional si el instalador es un msi.This parameter is optional if your installer is an msi. Para obtener un registro del instalador, proporciona aquí el argumento de registro del instalador y usa la ruta de acceso <log_folder>, que es un token que el convertidor reemplaza con la ruta de acceso apropiada.To get a log from your installer, supply the logging argument for the installer here and use the path <log_folder>, which is a token that the converter replaces with the appropriate path.

NOTA: Los argumentos de registro y marcas de instalación desatendida o silenciosa varían entre las tecnologías de instalador.NOTE: The unattended/silent flags and log arguments will vary between installer technologies.

Un ejemplo de uso para este parámetro: -InstallerArguments "/Silent/log <carpeta_registro>\install.log". Otro ejemplo que no produce un archivo de registro puede tener el siguiente aspecto: -InstallerArguments "/quiet", "/norestart". De nuevo, debes dirigir literalmente los registros a la ruta de acceso de token <carpeta_registro> si quieres que el convertidor lo capture y lo coloque en la carpeta de registro final.An example usage for this parameter: -InstallerArguments "/silent /log <log_folder>\install.log" Another example that doesn't produce a log file may look like: -InstallerArguments "/quiet", "/norestart" Again, you must literally direct any logs to the token path <log_folder> if you want the converter to capture it and put it in the final log folder.
-InstallerValidExitCodes <Int32>-InstallerValidExitCodes <Int32> OpcionalOptional Una lista separada por comas de códigos de salida que indica que el instalador se ejecutó correctamente (por ejemplo: 0, 1234, 5678).A comma-separated list of exit codes that indicate your installer ran successfully (for example: 0, 1234, 5678). De forma predeterminada, es 0 para no msi y 0, 1641, 3010 para msi.By default this is 0 for non-msi, and 0, 1641, 3010 for msi.
-MakeAppx [<SwitchParameter>]-MakeAppx [<SwitchParameter>] OpcionalOptional Un modificador que, cuando está presente, indica a este script que llame a MakeAppx en la salida.A switch that, when present, tells this script to call MakeAppx on the output.
-MakeMSIX [<SwitchParameter>]-MakeMSIX [<SwitchParameter>] OpcionalOptional Un conmutador que, cuando está presente, indica a este script que empaquete la salida como un paquete MSIX.A switch that, when present, tells this script to package the output as an MSIX Package.
Parámetros de identidad de paquetePackage identity parameters
-PackageName <Cadena>-PackageName <String> RequeridoRequired El nombre del paquete de la aplicación universal de Windows.The name of your Universal Windows App package. Si el Centro de partners asigna una identidad al paquete que comienza por un número, asegúrate también de pasar el parámetro -AppId y usa solo el sufijo de cadena (después del separador de punto) como el valor de dicho parámetro.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.
-Publisher <Cadena>-Publisher <String> RequeridoRequired El publicador del paquete de la aplicación universal de WindowsThe publisher of your Universal Windows App package
-Version <Versión>-Version <Version> RequeridoRequired El número de versión del paquete de la aplicación universal de WindowsThe version number for your Universal Windows App package
Parámetros del manifiesto de paquetePackage manifest parameters
-AppExecutable <Cadena>-AppExecutable <String> OpcionalOptional El nombre del archivo ejecutable principal de la aplicación (por ejemplo, "MyApp.exe").The name of your application's main executable (eg "MyApp.exe"). Este parámetro es obligatorio para realizar una conversión sin instalador.This parameter is required for a no-installer conversion.
-AppFileTypes <Cadena>-AppFileTypes <String> OpcionalOptional Una lista separada por comas de tipos de archivo a los que se asociará la aplicación.A comma-separated list of file types which the application will be associated with. Ejemplo de uso: -AppFileTypes "'.md', '.markdown'".Example usage: -AppFileTypes "'.md', '.markdown'".
-AppId <Cadena>-AppId <String> OpcionalOptional Especifica un valor para establecer el id. de la aplicación en el manifiesto del paquete de la aplicación de Windows.Specifies a value to set Application Id to in the Windows app package manifest. Si no se especifica, se establecerá en el valor pasado para PackageName.If it is not specified, it will be set to the value passed in for PackageName. En muchos casos, usar PackageName está bien.In many cases, using the PackageName is fine. Sin embargo, si el Centro de partners asigna una identidad al paquete que comienza por un número, asegúrate también de pasar el parámetro -AppId y usa solo el sufijo de cadena (después del separador de punto) como el valor de dicho parámetro.However, if Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.
-AppDisplayName <Cadena>-AppDisplayName <String> OpcionalOptional Especifica un valor para establecer el nombre para mostrar de la aplicación en el manifiesto del paquete de la aplicación de Windows.Specifies a value to set Application Display Name to in the Windows app package manifest. Si no se especifica, se establecerá en el valor pasado para PackageName.If it is not specified, it will be set to the value passed in for PackageName.
-AppDescription <Cadena>-AppDescription <String> OpcionalOptional Especifica un valor para establecer la descripción de la aplicación en el manifiesto del paquete de la aplicación de Windows.Specifies a value to set Application Description to in the Windows app package manifest. Si no se especifica, se establecerá en el valor pasado para PackageName.If it is not specified, it will be set to the value passed in for PackageName.
-PackageDisplayName <Cadena>-PackageDisplayName <String> OpcionalOptional Especifica un valor para establecer el nombre para mostrar del paquete en el manifiesto del paquete de la aplicación de Windows.Specifies a value to set Package Display Name to in the Windows app package manifest. Si no se especifica, se establecerá en el valor pasado para PackageName.If it is not specified, it will be set to the value passed in for PackageName.
-PackagePublisherDisplayName <Cadena>-PackagePublisherDisplayName <String> OpcionalOptional Especifica un valor para establecer el nombre para mostrar del editor del paquete en el manifiesto del paquete de la aplicación de Windows.Specifies a value to set Package Publisher Display Name to in the Windows app package manifest. Si no se especifica, se establecerá en el valor pasado para Publisher.If it is not specified, it will be set to the value passed in for Publisher.
Parámetros de limpiezaCleanup parameters
-Cleanup [<Opción>]-Cleanup [<Option>] RequeridoRequired Ejecuta la limpieza de los artefactos de DesktopAppConverter.Runs cleanup for the DesktopAppConverter artifacts. Hay 3 opciones válidas para el modo de limpieza.There are 3 valid options for the Cleanup mode.
-Cleanup All-Cleanup All Elimina todas las imágenes base expandidas, quita todos los archivos temporales del convertidor, quita la red de contenedores y deshabilita la característica Contenedores opcional de Windows.Deletes all expanded base images, removes any temporary converter files, removes the container network, and disables the optional Windows feature, Containers.
-Cleanup WorkDirectory-Cleanup WorkDirectory RequeridoRequired Quita todos los archivos temporales del convertidor.Removes all the temporary converter files.
-Cleanup ExpandedImage-Cleanup ExpandedImage RequeridoRequired Elimina todas las imágenes base expandidas instaladas en la máquina host.Deletes all the expanded base images installed on your host machine.
Parámetros de arquitectura del paquetePackage architecture parameters
-PackageArch <Cadena>-PackageArch <String> RequeridoRequired Genera un paquete con la arquitectura especificada.Generates a package with the specified architecture. Las opciones válidas son 'x86' o 'x64'; por ejemplo, -PackageArch x86.Valid options are 'x86' or 'x64'; for example, -PackageArch x86. Este parámetro es opcional.This parameter is optional. Si no se especifica, DesktopAppConverter intentará detectar automáticamente la arquitectura del paquete.If unspecified, the DesktopAppConverter will try to auto-detect package architecture. Si se produce un error en la detección automática, se establece el paquete x64 de forma predeterminada.If auto-detection fails, it will default to x64 package.
Varios parámetrosMiscellaneous parameters
-ExpandedBaseImage <Cadena>-ExpandedBaseImage <String> OpcionalOptional Ruta de acceso completa a una imagen base ya expandida.Full path to an already expanded base image.
-LogFile <Cadena>-LogFile <String> OpcionalOptional Especifica un archivo de registro.Specifies a log file. Si se omite, se creará una ubicación temporal del archivo de registro.If omitted, a log file temporary location will be created.
-Sign [<SwitchParameter>]-Sign [<SwitchParameter>] OpcionalOptional Indica a este script que debe firmar la salida del paquete de la aplicación de Windows mediante un certificado generado con fines de prueba.Tells this script to sign the output Windows app package by using a generated certificate for testing purposes. Este parámetro debe aparecer junto con el modificador -MakeAppx.This switch should be present alongside the switch -MakeAppx.
<Parámetros comunes><Common parameters> RequeridoRequired Este cmdlet admite los siguientes parámetros comunes: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable y OutVariable.This cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. Para obtener más información, consulta about_CommonParameters.For more info, see about_CommonParameters.
-Verify [<SwitchParameter>]-Verify [<SwitchParameter>] OpcionalOptional Conmutador que, cuando está presente, indica a DAC que se debe validar el paquete de la aplicación según los requisitos de Puente de dispositivo de escritorio y Microsoft Store.A switch that, when present, tells the DAC to validate the app package against packaged app and Microsoft Store requirements. El resultado es un informe de validación "VerifyReport.xml" que se visualiza mejor en un explorador.The result is a validation report "VerifyReport.xml", which is best visualized in a browser. Este parámetro debe aparecer junto con el modificador -MakeAppx.This switch should be present alongside the switch -MakeAppx.
-PublishComRegistrations-PublishComRegistrations OpcionalOptional Analiza todos los registros COM públicos que realizó el instalador y publica aquellos que son válidos en el manifiesto.Scans all public COM registrations made by your installer and publishes the valid ones in your manifest. Usa esta marca solo si quieres que estos registros estén disponibles en otras aplicaciones.Use this flag only if you want to make these registrations available to other applications. No debes usar esta marca si solo la aplicación va a usar estos registros.You don't need to use this flag if these registrations will be used only by your application.

Lee este artículo para asegurarte de que los registros COM se comportan tal y como esperas después de empaquetar la aplicación.Review this article to make sure that your COM registrations behave as you expect after you package your app.

Ejecución de la aplicación empaquetadaRun the packaged app

Hay dos formas de ejecutar la aplicación.There's two ways to run your app.

Una manera es abrir un símbolo del sistema de PowerShell y escribir el siguiente comando: Add-AppxPackage –Register AppxManifest.xml.One way is to open a PowerShell command prompt, and then type this command: Add-AppxPackage –Register AppxManifest.xml. Esta es, probablemente, la forma más sencilla de ejecutar la aplicación, ya que no es necesario firmarla.It's probably the easiest way to run your application because you don't have to sign it.

La otra manera es firmar la aplicación con un certificado.Another way is to sign your application with a certificate. Si usas el parámetro sign, Desktop App Converter generará un certificado y firmará la aplicación con él.If you use the sign parameter, the Desktop App Converter will generate one for you, and then sign your application with it. Este archivo se llama auto-generated.cer y lo encontrarás en la carpeta raíz de la aplicación empaquetada.That file is named auto-generated.cer, and you can find it in the root folder of your packaged app.

Sigue estos pasos para instalar el certificado generado y así ejecutar la aplicación.Follow these steps to install the generated certificate, and then run your app.

  1. Haz doble clic en el archivo auto-generated.cer para instalar el certificado.Double-click the auto-generated.cer file to install the certificate.

    archivo de certificado generado

    Nota

    Si se te pide una contraseña, usa la contraseña predeterminada "123456".If you're prompted for a password, use the default password "123456".

  2. En el cuadro de diálogo Certificado, haz clic en el botón Instalar certificado.In the Certificate dialog box, choose the Install Certificate button.

  3. En el Asistente para la importación de certificados, instala el certificado en Máquina local y colócalo en el almacén de certificados Personas de confianza.In the Certificate Import Wizard, install the certificate onto the Local Machine, and place the certificate into the Trusted People certificate store.

    Almacén de personas de confianza

  4. En la carpeta raíz de la aplicación empaquetada, haz doble clic en el archivo de paquete de la aplicación de Windows.In root folder of your packaged app, double click the Windows app package file.

    Archivo del paquete de la aplicación de Windows

  5. Instala la aplicación; para ello, elige el botón Instalar.Install the app, by choosing the Install button.

    botón Instalar

Modificación de la aplicación empaquetadaModify the packaged app

Puedes realizar los cambios que quieras en la aplicación empaquetada para resolver errores, agregar recursos visuales o mejorar la aplicación con experiencias tan modernas como los iconos dinámicos.You'll likely make changes to your packaged application to address bugs, add visual assets, or enhance your application with modern experiences such as live tiles.

Después de realizar los cambios, no tienes que volver a ejecutar el convertidor.After you make your changes, you don't need to run the converter again. En la mayoría de los casos, puedes volver a empaquetar la aplicación mediante la herramienta MakeAppx y el archivo appxmanifest.xml que DAC crea para la aplicación.In most cases, you can just repackage your application by using the MakeAppx tool and the appxmanifest.xml file the DAC generates for your app. Consulta Generar un paquete de aplicación de Windows.See Generate a Windows app package.

Nota

Si realizas cambios en la configuración del Registro que creó el instalador, tendrás que volver a ejecutar Desktop App Converter para detectar esos cambios.If you make changes to registry settings that your installer makes, you will have to run the Desktop App Converter again to pick up those changes.

En las dos siguientes secciones se describen un par de correcciones opcionales que puedes realizar en la aplicación empaquetada.The following two sections describe a couple of optional fix-ups to the packaged application that you might consider.

Eliminación de los archivos y claves de registro innecesariosDelete unnecessary files and registry keys

Desktop App Converter adopta un enfoque muy conservador para filtrar el ruido del sistema y archivos del contenedor.The desktop App Converter takes a very conservative approach to filtering out files and system noise in the container.

Si quieres, puedes revisar la carpeta VFS y eliminar los archivos que no necesite el instalador.If you want, you can review the VFS folder and delete any files that your installer doesn't need. Asimismo, puedes revisar el contenido de Reg.dat y eliminar las claves que no estén instaladas o que la aplicación no necesite.You can also review the contents of Reg.dat and delete any keys that are not installed/needed by the app.

Corrección de encabezados PE dañadosFix corrupted PE headers

Durante el proceso de conversión, DesktopAppConverter ejecuta automáticamente PEHeaderCertFixTool para corregir cualquier encabezado PE dañado.During the conversion process, the DesktopAppConverter automatically runs the PEHeaderCertFixTool to fixup any corrupted PE headers. Sin embargo, también puedes ejecutar PEHeaderCertFixTool en un paquete de la aplicación de Windows de UWP, en archivos sueltos o en un binario concreto.However, you can also run the PEHeaderCertFixTool on a UWP Windows app package, loose files, or a specific binary. A continuación se muestra un ejemplo.Here's an example.

PEHeaderCertFixTool.exe <binary file>|<.appx package>|<folder> [/c] [/v]
 /c   -- check for corrupted certificate but do not fix (optional)
 /v   -- verbose (optional)
example1: PEHeaderCertFixTool app.exe
example2: PEHeaderCertFixTool c:\package.appx /c
example3: PEHeaderCertFixTool c:\myapp /c /v

Telemetría de Desktop App ConverterTelemetry from Desktop App Converter

Desktop App Converter puede recopilar información sobre ti y sobre el uso del software, y enviarla a Microsoft.Desktop App Converter may collect information about you and your use of the software and send this info to Microsoft. Puedes obtener más información sobre la recopilación de datos de Microsoft y usarla en la documentación del producto y en la Declaración de privacidad de Microsoft.You can learn more about Microsoft's data collection and use in the product documentation and in the Microsoft Privacy Statement. Usted acuerda cumplir todas las disposiciones aplicables de la Declaración de privacidad de Microsoft.You agree to comply with all applicable provisions of the Microsoft Privacy Statement.

De manera predeterminada, la telemetría se habilitará en Desktop App Converter.By default, telemetry will be enabled for the Desktop App Converter. Agrega la siguiente clave del registro para establecer la telemetría en una configuración deseada:Add the following registry key to configure telemetry to a desired setting:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DesktopAppConverter
  • Agrega o edita el valor DisableTelemetry mediante un DWORD establecido en 1.Add or edit the DisableTelemetry value by using a DWORD set to 1.
  • Para habilitar la telemetría, quita la clave o establece el valor en 0.To enable telemetry, remove the key or set the value to 0.

Compatibilidad con idiomasLanguage support

Desktop App Converter no admite Unicode; por lo tanto, no es posible usar caracteres chinos ni caracteres que no sean ASCII con la herramienta.The Desktop App Converter does not support Unicode; thus, no Chinese characters or non-ASCII characters can be used with the tool.

Problemas conocidos con Desktop App ConverterKnown issues with the Desktop App Converter

Errores E_CREATING_ISOLATED_ENV_FAILED and E_STARTING_ISOLATED_ENV_FAILEDE_CREATING_ISOLATED_ENV_FAILED and E_STARTING_ISOLATED_ENV_FAILED errors

Si se produce cualquiera de estos errores, asegúrate de que estás usando una imagen base válida del centro de descarga.If you receive either of these errors, make sure that you're using a valid base image from the download center. Si estás usando una imagen de base válida, prueba a usar -Cleanup All en el comando.If you’re using a valid base image, try using -Cleanup All in your command. Si esto no funciona, envíanos tus registros a converter@microsoft.com para que podamos investigar este error.If that does not work, please send us your logs at converter@microsoft.com to help us investigate.

New-ContainerNetwork: error El objeto ya existeNew-ContainerNetwork: The object already exists error

Es posible que se produzca este error al configurar una nueva imagen base.You might receive this error when you setup a new base image. Esto puede suceder si tienes un paquete piloto de Windows Insider en un equipo de desarrollador que anteriormente tenía instalado Desktop App Converter.This can happen if you have a Windows Insider flight on a developer machine that previously had the Desktop App Converter installed.

Para resolver este problema, prueba a ejecutar el comando Netsh int ipv4 reset desde un símbolo del sistema con privilegios elevados y, a continuación, reinicia el equipo.To resolve this issue, try running the command Netsh int ipv4 reset from an elevated command prompt, and then reboot your machine.

La aplicación .NET está compilada con la opción de compilación "AnyCPU" y no se puede instalarYour .NET application is compiled with the "AnyCPU" build option and fails to install

Esto puede suceder si el archivo ejecutable principal (o cualquiera de las dependencias) está colocado en cualquier lugar de la jerarquía de carpetas Archivos de programa o Windows\System32.This can happen if the main executable or any of the dependencies were placed anywhere in the Program Files or Windows\System32 folder hierarchy.

Para resolver este problema, intenta usar un instalador de escritorio específico para cada arquitectura (32 o 64 bits) y así poder generar un paquete de la aplicación de Windows.To resolve this issue, try using your architecture-specific desktop installer (32 bit or 64 bit) to generate a Windows app package.

La publicación en paralelo de ensamblados Fusion públicos no funcionaPublishing public side-by-side Fusion assemblies won't work

Durante la instalación, una aplicación puede publicar ensamblados Fusion públicos en paralelo, accesibles para cualquier otro proceso.During install, an application can publish public side-by-side Fusion assemblies, accessible to any other process. Durante la creación de contexto de activación de proceso, estos ensamblados se recuperan mediante un proceso del sistema denominado CSRSS.exe.During process activation context creation, these assemblies are retrieved by a system process named CSRSS.exe. Cuando esto se realiza para un proceso convertido, se produce un error en la creación de contexto de activación y en la carga del módulo de estos ensamblados.When this is done for a converted process, activation context creation and module loading of these assemblies will fail. Los ensamblados Fusion en paralelo se registran en las siguientes ubicaciones:The side-by-side Fusion assemblies are registered in the following locations:

  • Registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\WinnersRegistry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners
  • Sistema de archivos: %windir%\SideBySideFile System: %windir%\SideBySide

Esta es una limitación conocida y no existe ninguna solución alternativa actualmente.This is a known limitation and no workaround currently exists. Dicho esto, los ensamblados de bandeja de entrada, como ComCtl, se envían con el sistema operativo, por lo que se puede depender de ellos con seguridad.That said, Inbox assemblies, like ComCtl, are shipped with the OS, so taking a dependency on them is safe.

Error en XML.Error found in XML. El atributo "Executable" no es válido: el valor "MyApp.EXE" no es válido según el tipo de datosThe 'Executable' attribute is invalid - The value 'MyApp.EXE' is invalid according to its datatype

Esto puede suceder si los archivos ejecutables de la aplicación tienen una extensión .EXE escrita en mayúsculas.This can happen if the executables in your application have a capitalized .EXE extension. Aunque las mayúsculas y minúsculas de esta extensión no deberían afectar a la ejecución de la aplicación, puede provocar que DAC genere este error.Although, the casing of this extension shouldn't affect whether your application runs, this can cause the DAC to generate this error.

Para resolver este problema, prueba a especificar la marca -AppExecutable cuando realices el empaquetado y usa la extensión ".exe" en minúsculas como extensión del archivo ejecutable principal (por ejemplo: MYAPP.exe).To resolve this issue, try specifying the -AppExecutable flag when you package, and use the lower case ".exe" as the extension of your main executable (For example: MYAPP.exe). También puedes cambiar todos los archivos ejecutables de la aplicación de mayúsculas a minúsculas (por ejemplo: de ".EXE" a ".exe").Alternately you can change the casing for all executables in your application from uppercase to lowercase (For example: from .EXE to .exe).

Firmas Authenticode dañadas o con formato incorrectoCorrupted or malformed Authenticode signatures

En esta sección se incluye información detallada sobre cómo identificar problemas con los archivos portables ejecutables (PE) del paquete de la aplicación de Windows que pueden contener firmas Authenticode dañadas o con formato incorrecto.This section contains details on how to identify issues with Portable Executable (PE) files in your Windows app package that may contain corrupted or malformed Authenticode signatures. Las firmas Authenticode no válidas en los archivos PE, que pueden estar en cualquier formato binario (como .exe, .dll, .chm, etc.) impedirán que el paquete se firme correctamente y, por consiguiente, que se pueda implementar desde un paquete de la aplicación de Windows.Invalid Authenticode signatures on your PE files, which may be in any binary format (e.g. .exe, .dll, .chm, etc.), will prevent your package from being signed properly, and thus prevent it from being deployable from an Windows app package.

La ubicación de la firma Authenticode de un archivo PE se especifica mediante la entrada de la tabla de certificados en los directorios de datos de encabezado opcionales y la tabla de certificados de atributos asociada.The location of the Authenticode signature of a PE file is specified by the Certificate Table entry in the Optional Header Data Directories and the associated Attribute Certificate Table. Durante la comprobación de la firma, la información especificada en estas estructuras se usa para buscar la firma en un archivo PE.During signature verification, the information specified in these structures is used to locate the signature on a PE file. Si estos valores se dañan, es posible que un archivo aparezca como firmado sin validez.If these values get corrupted then it is possible for a file to appear to be invalidly signed.

Para que la firma Authenticode sea correcta, debe cumplirse lo siguiente en la firma Authenticode:For the Authenticode signature to be correct, the following must be true of the Authenticode signature:

  • El inicio de la entrada WIN_CERTIFICATE en el archivo PE no se puede extenderse más allá del final del archivo ejecutable.The start of the WIN_CERTIFICATE entry in the PE file cannot extend past the end of the executable
  • La entrada WIN_CERTIFCATE debe estar situada al final de la imagen.The WIN_CERTIFCATE entry should be located at the end of the image
  • El tamaño de la entrada WIN_CERTIFICATE debe ser positivo.The size of the WIN_CERTIFICATE entry must be positive
  • La entrada WIN_CERTIFICATE debe comenzar después de la estructura IMAGE_NT_HEADERS32 en los archivos ejecutables de 32 bits y la estructura IMAGE_NT_HEADERS64 en los archivos ejecutables de 64 bits.The WIN_CERTIFICATEentry must start after the IMAGE_NT_HEADERS32 structure for 32-bit executables and IMAGE_NT_HEADERS64 structure for 64-bit executables

Para obtener más información, consulta la especificación del ejecutable del portal Authenticode y la especificación del formato de archivo PE (en inglés).For more details, please refer to the Authenticode Portal Executable specification and the PE file format specification.

Ten en cuenta que SignTool.exe puede generar una lista de los archivos binarios dañados o con formato incorrecto al intentar firmar un paquete de la aplicación de Windows.Note that SignTool.exe can output a list of the corrupted or malformed binaries when attempting to sign an Windows app package. Para ello, establece la variable de entorno APPXSIP_LOG en 1 (por ejemplo, set APPXSIP_LOG=1) para habilitar el registro detallado y vuelve a ejecutar SignTool.exe.To do this, enable verbose logging by setting the environment variable APPXSIP_LOG to 1 (e.g., set APPXSIP_LOG=1 ) and re-run SignTool.exe.

Para corregir estos archivos binarios con formato incorrecto, asegúrate de que cumplen con los requisitos anteriores.To fix these malformed binaries, ensure they conform to the requirements above.

Pasos siguientesNext steps

Encontrar respuestas a tus preguntasFind answers to your questions

¿Tienes alguna pregunta?Have questions? Pregúntanos en Stack Overflow.Ask us on Stack Overflow. Nuestro equipo supervisa estas etiquetas.Our team monitors these tags. También puedes preguntarnos aquí.You can also ask us here.

Ejecutar la aplicación o buscar y corregir problemasRun your application / find and fix issues

Consulta Ejecución, depuración y prueba de una aplicación de escritorio empaquetadaSee Run, debug, and test a packaged desktop application

Distribuir la aplicaciónDistribute your app

Consulta Distribuir una aplicación de escritorio empaquetadaSee Distribute a packaged desktop application