Известные проблемы с упакованными классическими приложениями

В этой статье приведены сведения об известных проблемах, которые могут возникнуть при создании пакета MSIX для классического приложения.

Сообщение об ошибке MSB4018, неожиданный сбой задачи GenerateResource

Это может произойти при попытке преобразования вспомогательных сборок в файлы индекса ресурсов пакетов (PRI).

Мы знаем об этой проблеме и работаем над ее окончательным решением. В качестве временного решения можно отключить генератор ресурсов. Для этого добавьте следующую строку XML в первый элемент PropertyGroup в файле вышестоящего проекта:

<AppxGeneratePrisForPortableLibrariesEnabled>false</AppxGeneratePrisForPortableLibrariesEnabled>

Синий экран с кодом ошибки 0x139 (KERNEL_SECURITY_CHECK_FAILURE)

После установки или запуска некоторых приложений из Microsoft Store компьютер может неожиданно перезагрузиться с ошибкой 0x139 (KERNEL_SECURITY_CHECK_ FAILURE).

Известные затронутые приложения включают Kodi, JT2Go, Ear Trumpet, Teslagrad и другие.

Обновление Windows (версия 14393.351 — КБ3197954) было выпущено 10.27.16, включающее важные исправления, которые устраняют эту проблему. При возникновении этой проблемы обновите компьютер. Если вы не сможете обновить компьютер, так как компьютер перезагрузится до входа, необходимо использовать восстановление системы для восстановления системы до точки раньше, чем при установке одного из затронутых приложений. Сведения об использовании восстановления системы см. в разделе "Параметры восстановления" в Windows 10.

Если обновление не исправляет проблему или не знаете, как восстановить компьютер, обратитесь к служба поддержки Майкрософт.

Если вы разработчик, вы можете запретить установку своих упакованных приложений в версиях Windows, в которых нет этого обновления. Обратите внимание, что при этом ваше приложение не будет доступно пользователям, которые еще не установили обновление. Чтобы сделать приложением доступным только пользователям, которые установили обновления, внесите в файл AppxManifest.xml следующие исправления:

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

Подробные сведения о Обновл. Windows см. в следующих сведениях:

Распространенные ошибки, которые могут появиться при входе в приложение

Несоответствие издателя и сертификата приводит к ошибке signtool "Error: SignerSign() Failed" (-2147024885/0x8007000b)

Запись издателя в манифесте пакета приложения для Windows должна соответствовать субъекту сертификата, с помощью которого выполняется подписывание. Для просмотра темы сертификата можно использовать любой из следующих методов.

Вариант 1. PowerShell

Выполните следующую команду PowerShell. Cer или PFX можно использовать в качестве файла сертификата, так как они имеют те же сведения о издателе.

(Get-PfxCertificate <cert_file>).Subject

Вариант 2: проводник

Дважды щелкните сертификат в проводник, выберите вкладку "Сведения" и поле "Тема" в списке. Затем можно скопировать содержимое.

Вариант 3. CertUtil

Запустите certutil из командной строки в PFX-файле и скопируйте поле Subject из выходных данных.

certutil -dump <cert_file.pfx>

Неправильный сертификат PE (0x800700C1)

Это может произойти, если пакет содержит двоичный файл с поврежденным сертификатом. Вот некоторые из причин:

  • Начало сертификата находится не в конце образа.

  • Размер сертификата не положительный.

  • Сертификат начинается не после структуры IMAGE_NT_HEADERS32 для 32-разрядного исполняемого файла или структуры IMAGE_NT_HEADERS64 для 64-разрядного исполняемого файла.

  • Указатель сертификата не согласован должным образом для структуры WIN_CERTIFICATE.

Чтобы найти файлы, содержащие неправильный сертификат PE, откройте командную строку и задайте для переменной среды с именем APPXSIP_LOG значение 1.

set APPXSIP_LOG=1

Затем в командной строке еще раз подпишите приложение. Например:

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

Сведения о файлах, содержащих неправильный сертификат PE, отобразятся в окне консоли. Например:

...

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

...   

Next Steps

Есть вопросы? Задайте их на Stack Overflow. Наша команда следит за этими тегами.