Приложение проходит WACK, но не проходит сертификацию отправки магазина

Я наблюдаю странную ситуацию, когда мое приложение передает WACK на моем компьютере, но отправка в хранилище происходит на этапе сертификации из-за неподдерживаемых API. Я использую MSVC 15 Update 2.

Решение состоит из:

  1. Универсальное приложение
  2. Библиотека классов (универсальные окна)
  3. Библиотека классов (переносная)
  4. EF Core RC2
  5. 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 файл для отправки в магазин.

Другие вопросы по тегам