Известные проблемы с упакованными классическими приложениями
В этой статье приведены сведения об известных проблемах, которые могут возникнуть при создании пакета 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 см. в следующих сведениях:
- https://support.microsoft.com/kb/3197954
- https://support.microsoft.com/help/12387/windows-10-update-history
Распространенные ошибки, которые могут появиться при входе в приложение
Несоответствие издателя и сертификата приводит к ошибке 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. Наша команда следит за этими тегами.