应用程序通过 WACK 但未通过商店提交认证

App passes WACK but fails store submission Certification

我观察到一个奇怪的情况,我的应用程序在我的计算机上通过了 WACK,但由于 API 不受支持,在认证阶段提交到商店失败。我正在使用 MSVC 15 更新 2。

解决方案包括:

  1. 万能APP
  2. Class图书馆(通用Windows)
  3. Class 图书馆(便携式)
  4. EF Core RC2

商店认证输出:

Error Found: The supported APIs test detected the following errors:

  • API sysctl in libc.dll is not supported for this application type. Microsoft.Extensions.PlatformAbstractions.dll calls this API.
  • API uname in libc.dll is not supported for this application type. Microsoft.Extensions.PlatformAbstractions.dll calls this API.
  • API RtlGetVersion in ntdll.dll is not supported for this application type. Microsoft.Extensions.PlatformAbstractions.dll calls this API.

如前所述,WACK 在我的机器上没有发现任何错误。我尝试了 visual studio 附带的 WACK 和单独安装的 WACK。

"Class Library (Portable)" 会不会因为它的存在而造成这种情况?

更新: 它不是可移植的 class 库,我删除了它但仍然遇到同样的认证失败。

您希望 Microsoft.Extensions.PlatformAbstractions.dll 包含在您的包裹中吗?这可能包含在 .appxupload 文件中内置的包中,但不包含在您在本地构建以进行测试的包中。我看到最近的一些案例,其中项目包含对包中不需要且不合规的 dll 的引用。您可能想调查这个角度并验证是否错误地包含了这个文件。

在本地验证您可能通过考试的一种方法是检查 %localappdata%\Microsoft\appcertkit 中的 programinventory_*.xml 文件,看看是否可以找到对 Microsoft.Extensions.PlatformAbstractions.dll 的任何引用。如果在本地测试时未找到该文件,那么最好的办法是调查您的项目以及为什么在构建 .appxupload 文件以提交到商店时包含它。

这是由 entityFrameworkCore.Tools 引起的。它们仍处于预发布阶段,不能正确支持 .net native。 有一个解决方法,但您也可以在使用 .net native 编译它并将其提交到商店之前将其从项目中删除。