Problemas conocidos de las aplicaciones de escritorio empaquetadasKnown Issues with packaged desktop apps

En este artículo se describen los problemas conocidos que pueden producirse al crear un paquete MSIX para tu aplicación de escritorio.This article contains known issues that can occur when you create an MSIX package for your desktop app.

Recibes el error MSB4018, que indica que se produjo un error inesperado en la tarea "GenerateResource".You receive the error MSB4018 The "GenerateResource" task failed unexpectedly

Esto puede suceder al intentar convertir ensamblados satélite en archivos de índice de recursos del paquete (PRI).This can happen when trying to convert satellite assemblies to Package Resource Index (PRI) files.

Conocemos este problema y estamos trabajando en una solución a más largo plazo.We are aware of this issue and are working on a more long term solution. Como solución temporal, para deshabilitar el generador de recursos puedes agregar esta línea de XML al primer elemento PropertyGroup que aloja el archivo de proyecto:As a temporary workaround, you can disable the resource generator by adding this line of XML to the first PropertyGroup element in hosting project file:

<AppxGeneratePrisForPortableLibrariesEnabled>false</AppxGeneratePrisForPortableLibrariesEnabled>

Pantalla azul con el código de error 0x139 (KERNEL_SECURITY_CHECK_FAILURE)Blue screen with error code 0x139 (KERNEL_SECURITY_CHECK_FAILURE)

Después de instalar o iniciar determinadas aplicaciones desde Microsoft Store, la máquina se reinicia inesperadamente con el error: 0x139 (KERNEL_SECURITY_CHECK_ FAILURE) .After installing or launching certain apps from the Microsoft Store, your machine may unexpectedly reboot with the error: 0x139 (KERNEL_SECURITY_CHECK_ FAILURE).

Las aplicaciones afectadas conocidas incluyen Kodi, JT2Go, Ear Trumpet y Teslagrad, entre otras.Known affected apps include Kodi, JT2Go, Ear Trumpet, Teslagrad, and others.

Se publicó una actualización de Windows (versión 14393.351 - KB3197954) el 27/10/16 que incluye correcciones importantes que abordan este problema.A Windows update (Version 14393.351 - KB3197954) was released on 10/27/16 that includes important fixes that address this issue. Si se produce este problema, actualiza la máquina.If you encounter this problem, update your machine. Si no puedes actualizar el equipo porque la máquina se reinicia antes de poder iniciar sesión, debes usar la función Restaurar sistema para recuperar el sistema a un punto anterior a la instalación de una de las aplicaciones afectadas.If you are not able to update your PC because your machine restarts before you can log in, you should use system restore to recover your system to a point earlier than when you installed one of the affected apps. Para obtener información sobre cómo usar Restaurar sistema, consulta Opciones de recuperación de Windows 10.For information on how to use system restore, see Recovery options in Windows 10.

Si la actualización no soluciona el problema o no estás seguro de cómo recuperar tu equipo, ponte en contacto con el Soporte técnico de Microsoft.If updating does not fix the problem or you aren't sure how to recover your PC, please contact Microsoft Support.

Si eres un desarrollador, quizá quieras impedir la instalación de tu aplicación empaquetada en las versiones de Windows que no incluyen esta actualización.If you are a developer, you may want to prevent the installation of your packaged application on versions of Windows that do not include this update. Ten en cuenta que, al hacerlo, la aplicación no estará disponible para los usuarios que aún no han instalado la actualización.Note that by doing this your application will not be available to users that have not yet installed the update. Para limitar la disponibilidad de la aplicación a los usuarios que han instalado esta actualización, modifica el archivo AppxManifest.xml de la siguiente manera:To limit the availability of your application to users that have installed this update, modify your AppxManifest.xml file as follows:

<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.351" MaxVersionTested="10.0.14393.351"/>

Para conocer más detalles sobre Windows Update, consulta:Details regarding the Windows Update can be found at:

Errores comunes que pueden aparecer al iniciar sesión en la aplicaciónCommon errors that can appear when you sign your app

La falta de coincidencia entre el editor y el certificado produce el error de SignTool "Error: Error de SignerSign()" (-2147024885/0x8007000b)Publisher and cert mismatch causes Signtool error "Error: SignerSign() Failed" (-2147024885/0x8007000b)

La entrada Editor del manifiesto del paquete de la aplicación de Windows debe coincidir con el valor de Firmante del certificado con que firmas.The Publisher entry in the Windows app package manifest must match the Subject of the certificate you are signing with. Puedes usar cualquiera de los métodos siguientes para ver el firmante del certificado.You can use any of the following methods to view the subject of the cert.

Opción 1: PowerShellOption 1: Powershell

Ejecuta el siguiente comando de PowerShell.Run the following PowerShell command. Puedes usar .cer o .pfx como el archivo de certificado, ya que tienen la misma información de editor.Either .cer or .pfx can be used as the certificate file, as they have the same publisher information.

(Get-PfxCertificate <cert_file>).Subject

Opción 2: Explorador de archivosOption 2: File Explorer

Haz doble clic en el certificado en el Explorador de archivos, selecciona la pestaña Detalles y después el campo Firmante en la lista.Double-click the certificate in File Explorer, select the Details tab, and then the Subject field in the list. A continuación, puedes copiar el contenido.You can then copy the contents.

Opción 3: CertUtilOption 3: CertUtil

Ejecuta certutil desde la línea de comandos en el archivo PFX y copia el valor del campo Firmante de la salida.Run certutil from the command line on the PFX file and copy the Subject field from the output.

certutil -dump <cert_file.pfx>

Certificado de PE incorrecto (0x800700C1)Bad PE certificate (0x800700C1)

Puede ocurrir si el paquete contiene un archivo binario que tiene un certificado dañado.This can happen when your package contains a binary that has a corrupted certificate. Estas son algunas de las razones por las que puede ocurrir:Here's some of the reasons why this can happen:

  • El inicio del certificado no está al final de una imagen.The start of the certificate is not at the end of an image.

  • El tamaño del certificado no es positivo.The size of the certificate isn't positive.

  • El inicio del certificado no se encuentra después de la estructura IMAGE_NT_HEADERS32 para un ejecutable de 32 bits o después de la estructura IMAGE_NT_HEADERS64 para un ejecutable de 64 bits.The certificate start isn't after the IMAGE_NT_HEADERS32 structure for a 32-bit executable or after the IMAGE_NT_HEADERS64 structure for a 64-bit executable.

  • El puntero del certificado no está correctamente alineado para una estructura WIN_CERTIFICATE.The certificate pointer isn't properly aligned for a WIN_CERTIFICATE structure.

Para buscar los archivos que contienen un certificado de PE incorrecto, abre un símbolo del sistema y establece la variable de entorno denominada APPXSIP_LOG en un valor de 1.To find files that contain a bad PE cert, open a Command Prompt, and set the environment variable named APPXSIP_LOG to a value of 1.

set APPXSIP_LOG=1

A continuación, desde el símbolo del sistema, vuelve a firmar la aplicación.Then, from the Command Prompt, sign your application again. Por ejemplo:For example:

signtool.exe sign /a /v /fd SHA256 /f APPX_TEST_0.pfx C:\Users\Contoso\Desktop\pe\VLC.appx

La información sobre los archivos que contienen un certificado de PE incorrecto aparecerá en la ventana de la consola.Information about files that contain a bad PE cert will appear in the Console Window. Por ejemplo:For example:

...

ERROR: [AppxSipCustomLoggerCallback] File has malformed certificate: uninstall.exe

...   

Pasos a seguirNext Steps

¿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.