如何使用 XamlIslands 和 Desktop Bridge 打包 WPF(.NET Core)应用程序?

How to package a WPF (.NET Core) app with XamlIslands and Desktop Bridge?

我在 WPF 中有一个针对 .NET Core v3.1 的应用程序,我正在使用 XamlIslands 来显示 Windows 10 UI 个组件。为了使用 XamlIslands,我必须先将我的应用程序从 .NET Framework 迁移到 .NET Core

我将我的自定义 UWP 组件放入 UWP project,目标 Win10 version 2004,最低版本为 1903。在 WPF 项目中,我可以使用 XamlHosts.

引用这些自定义 UWP 组件

然后,我有一个 Desktop Bridge 项目,它可以打包 WPF 应用程序,以便能够上传到 Microsoft Store。

项目编译和 运行s 正确,我什至可以 运行 打包项目,但是当我尝试创建一个旁加载的应用程序包时,它给了我以下错误:

Project UWP is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1) / win-x64. Project UWP supports: uap10.0.18362 (UAP,Version=v10.0.18362)
Project UWP is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project UWP supports: uap10.0.18362 (UAP,Version=v10.0.18362)

我尝试将 UWP 应用程序的最低版本设置为 windows 10, build 10240(这是最旧的),但出现了同样的错误(当然,更新了 uap 版本)。

的回答中,我读到也许我应该创建一个 .NET Standard 项目?但是无法创建针对 .NET Standard.

WPF 应用程序
  1. 当我可以构建 运行 整个解决方案时,错误消息如何显示 UWP 应用与 .netcore 不兼容?如果是 运行s,为什么不能创建应用程序包?
  2. 然后我如何创建一个应用程序包,我可以将其上传到应用商店?

How to package a WPF (.NET Core) app with XamlIslands and bridge?

请参考Host a custom WinRT XAML control in a WPF app using XAML Islands official document. And derive from your information, it looks you have not configured your solution to target a specific platform,例如x86或x64。面向 Any CPU 的项目不支持自定义 WinRT XAML 控件。 请不要忘记编辑您的 wpf 项目 configuration

 <AssetTargetFallback>uap10.0.19041</AssetTargetFallback>

我已经做了一个code sample,我可以根据上面的步骤进行打包,这里是官方代码示例,您可以下载并测试打包。