Приложение проходит WACK, но не проходит сертификацию отправки магазина
Я наблюдаю странную ситуацию, когда мое приложение передает WACK на моем компьютере, но отправка в хранилище происходит на этапе сертификации из-за неподдерживаемых API. Я использую MSVC 15 Update 2.
Решение состоит из:
- Универсальное приложение
- Библиотека классов (универсальные окна)
- Библиотека классов (переносная)
- EF Core RC2
- Syncfusion SfChart.UWP.dll
Магазин сертификации сертификации:
Обнаружена ошибка: тест поддерживаемых API обнаружил следующие ошибки:
- API sysctl в libc.dll не поддерживается для этого типа приложения. Microsoft.Extensions.PlatformAbstractions.dll вызывает этот API.
- API uname в libc.dll не поддерживается для этого типа приложения. Microsoft.Extensions.PlatformAbstractions.dll вызывает этот API.
- API RtlGetVersion в ntdll.dll не поддерживается для этого типа приложения. Microsoft.Extensions.PlatformAbstractions.dll вызывает этот API.
Как уже упоминалось, WACK не обнаружил никаких ошибок на моей машине. Я пробовал как WACK, который поставляется с visual studio, так и WACK, который устанавливается отдельно.
Может ли "Библиотека классов (переносимая)" быть причиной этого только благодаря ее существованию?
Обновление: это не переносимая библиотека классов, я удалил ее и все еще получаю тот же сбой сертификации.
2 ответа
Это было вызвано entityFrameworkCore.Tools. Они все еще являются предварительными и не поддерживают.net native должным образом. Существует обходной путь, но вы также можете просто удалить его из проекта, прежде чем скомпилировать его с помощью.net native и отправить его в хранилище.
Вы ожидаете Microsoft.Extensions.PlatformAbstractions.dll
быть включенным в ваш пакет? Возможно, это будет включено в пакеты, встроенные в .appxupload
файл, но не в пакетах, которые вы собираете локально для тестирования. Я видел несколько недавних случаев, когда проект включает ссылки на dll, которые не нужны в пакете и не соответствуют требованиям. Вы можете исследовать этот угол и убедиться, что этот файл включен неправильно.
Один из способов подтвердить, почему вы проходите мимо, - это проверить programinventory_*.xml
файл в %localappdata%\Microsoft\appcertkit
и посмотреть, если вы можете найти какие-либо ссылки на Microsoft.Extensions.PlatformAbstractions.dll
, Если файл не найден при локальном тестировании, тогда лучше всего исследовать ваш проект и узнать, почему он появляется, в том числе при создании .appxupload
файл для отправки в магазин.