问题描述
我在 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。
项目编译和运行正确,我什至可以运行打包项目,但是当我尝试创建一个侧载的应用程序包时,它给了我以下错误:
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 版本)。>
在 this 的回答中,我读到也许我应该创建一个 .NET Standard
项目?但是无法创建针对 WPF
的 .NET Standard
应用程序。
解决方法
如何使用 XamlIslands 和网桥打包 WPF (.NET Core) 应用程序?
请参考Host a custom WinRT XAML control in a WPF app using XAML Islands官方文档。根据您的信息,您似乎尚未将解决方案配置为针对 specific platform,例如 x86 或 x64。面向任何 CPU 的项目不支持自定义 WinRT XAML 控件。 并且请不要忘记编辑您的 wpf 项目 configuration
<AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
我已经制作了一个code sample,我可以根据上面的步骤制作包,这里是官方代码示例,您可以下载并测试制作包。