【问题标题】:How to package a WPF (.NET Core) app with XamlIslands and Desktop Bridge?如何使用 XamlIslands 和桌面桥打包 WPF (.NET Core) 应用程序?
【发布时间】:2021-04-20 12:55:07
【问题描述】:

我在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应用,可以上传到微软商店。

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

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 项目?但是没有办法创建针对.NET StandardWPF 应用程序。

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

【问题讨论】:

    标签: c# wpf uwp desktop-bridge xaml-islands


    【解决方案1】:

    如何使用 XamlIslands 和桥接器打包 WPF (.NET Core) 应用程序?

    请参考Host a custom WinRT XAML control in a WPF app using XAML Islands官方文档。根据您的信息,您似乎尚未将解决方案配置为以specific platform 为目标,例如 x86 或 x64。以 Any CPU 为目标的项目不支持自定义 WinRT XAML 控件。 请不要忘记编辑您的 wpf 项目configuration

     <AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
    

    我已经制作了code sample,我可以根据以上步骤制作包,这里是官方代码示例,您可以下载并测试制作包。

    【讨论】:

    • 哦,非常感谢!我在每个项目中都只有 x64 和 x86 平台,但配置文件中缺少 AssetTargetFallback。添加它,解决了问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2019-10-19
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多