【发布时间】:2021-04-22 18:13:19
【问题描述】:
我正在开发一个 WPF 应用程序,我添加了一个自定义 WinRT 组件(在 UWP 中实现),我正在通过 XamlHost 在 WPF 应用程序中托管这个 win10 组件。我遵循documentation 的每一步,我的自定义控件是在UWP app project 而不是UWP class library 中实现的。该应用程序运行良好,UWP 组件在WPF 应用程序中正确显示。我可以创建应用程序包,但是当我上传到 Microsoft Store(.msixupload 文件)时,抛出了以下错误:
Package acceptance validation error: You cannot submit pre-compiled .NET Native packages. Please upload the Microsoft Store appxupload file and try again.
预编译的 .NET Native 包是什么意思?
我还检查了sample application,其中包含针对不同架构的winrthost.dll。但是文档没有提到这一点,我还添加到我的 UWP 项目中并按照示例应用程序的 .csproj 文件中的方式进行配置。我试图删除这个 dll 文件,但商店仍然不接受构建。
当我删除对UWP App 项目的引用时,应用商店接受了我的构建。当我重新添加引用(不使用其中的任何组件)时,商店拒绝了。所以我认为问题出在自定义 UWP 应用程序中,但这里的预编译 .NET Native 包可能是什么?
更新:
我向解决方案添加了一个新的空 UWP 应用项目,只需设置 XamlApplication 并从 WPF 应用程序中引用它。 UWP 组件显示在 WPF 中(我只添加了一个绿色矩形),但是当我尝试上传到商店时,它显示了相同的错误消息。
正如documentation 所说,还尝试创建 UWP 类库而不是 UWP 应用程序。创建了构建并接受了商店...有什么区别?
文档说:
您也可以在 UWP 应用项目中定义自定义控件 您在上一节中创建的。然而,这些步骤在一个 单独的类库项目用于说明目的,因为这 通常是实现自定义控件以实现可移植性的方式。
因此,理论上可以发布一个 WPF 应用程序,其中包含托管在 UWP 应用程序中的自定义 WinRT 组件,对吧?那为什么商店不接受呢?
【问题讨论】:
标签: c# wpf uwp xaml-islands