本文记录我的一个小项目从 Uno Platform 4 更新 Uno Platform 5 的一些变更和迁移方法,由于项目太小,可能踩到的坑不多

官方文档: Migrating to Uno Platform 5.0

表扬一下官方,文档写的很详细

Directory.Packages.props

所有的 Uno 相关包的版本更新:

-    <PackageVersion Include="Uno.WinUI" Version="4.10.13" />
+ <PackageVersion Include="Uno.WinUI" Version="5.0.143" />
- <PackageVersion Include="Uno.WinUI.Lottie" Version="4.10.13" />
+ <PackageVersion Include="Uno.WinUI.Lottie" Version="5.0.143" />
- <PackageVersion Include="Uno.WinUI.RemoteControl" Version="4.10.13" />
+ <PackageVersion Include="Uno.WinUI.RemoteControl" Version="5.0.143" />
- <PackageVersion Include="Uno.WinUI.Skia.Gtk" Version="4.10.13" />
+ <PackageVersion Include="Uno.WinUI.Skia.Gtk" Version="5.0.143" />
- <PackageVersion Include="Uno.WinUI.Skia.Linux.FrameBuffer" Version="4.10.13" />
+ <PackageVersion Include="Uno.WinUI.Skia.Linux.FrameBuffer" Version="5.0.143" />
- <PackageVersion Include="Uno.WinUI.Skia.Wpf" Version="4.10.13" />
+ <PackageVersion Include="Uno.WinUI.Skia.Wpf" Version="5.0.143" />

Skia.WPF

这里有大改的部分,不仅仅只是修改命名空间

之前的 WpfHost 是放入到具体的 WPF 的窗口里面的,现在更新版本是直接放入到 App 级的。迁移步骤如下

  • App.xaml 文件里面删除 StartupUri="Wpf/MainWindow.xaml" 属性的配置
  • 删除 MainWindow.xamlMainWindow.xaml.cs 文件
  • App.xaml.cs 里添加以下代码到构造函数
public App()
{
var host = new WpfHost(Dispatcher, () => new AppHead());
host.Run();
}

如果没有更改,将会在运行看到 If you are seeing this, make sure to follow the "Migrating WpfHost" section of Migrating from previous releases article in the Uno Platform documentation at https://aka.platform.uno/uno5-wpfhost-migration. WpfHost is used at the application level instead of window level starting Uno Platform 5.0. 提示

Skia.Framebuffer

更换了命名空间,从原本的 Uno.UI.Runtime.Skia.FrameBufferHost 变更为 Uno.UI.Runtime.Skia.Linux.FrameBuffer.FrameBufferHost 命名空间下的类型

只需加上 using Uno.UI.Runtime.Skia.Linux.FrameBuffer; 即可

Skia.Gtk

更换了命名空间,从原本的 Uno.UI.Runtime.Skia.GtkHost 变更为 Uno.UI.Runtime.Skia.Gtk.GtkHost 命名空间下的类型

只需加上 using Uno.UI.Runtime.Skia.Gtk; 即可

从 Uno Platform 4 更新 Uno Platform 5 的迁移方法的更多相关文章

  1. C#使用DataSet Datatable更新数据库的三种实现方法

    本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...

  2. 在SoCEDS环境下编译和更新preloader和uboot程序的方法

    在SoCEDS环境下编译和更新preloader和uboot程序的方法   前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloade ...

  3. pip更新及Requirement already up-to-date解决方法

    pip更新及Requirement already up-to-date解决方法 文:铁乐与猫 2018-9-11 更新命令 将pip更新到最新版本 python -m pip install --u ...

  4. hibernate update 只更新部分字段的3种方法(转载)

    hibernate 中如果直接使用 Session.update(Object o); 会把这个表中的所有字段更新一遍. 比如: public class Teacher Test { @Test p ...

  5. hibernate update 只更新部分字段的3种方法(其实我只想说第二种)

    hibernate 中如果直接使用Session.update(Object o);会把这个表中的所有字段更新一遍. 比如: public class Teacher Test { @Test pub ...

  6. Win10累积更新KB3081424安装失败的解决方法

    我在个人的PC上多次更新KB3081424都失败了,后来按照网上给出的删除注册表残留项的方法后更新成功了(删除注册表残留项后我还执行了从微软帐户切换到本地帐户的操作,有兴趣的朋友可以试试不切换能否更新 ...

  7. 【EF】EntityFramework 更新数据库字段的三种方法

    实体类 public class TestDbContext : DbContext { public DbSet<Test> Tests { get; set; } public Tes ...

  8. Win10系统更新提示错误0xc1900403的解决方法

    Win10系统自从发布上线以来,一直有不断地进行更新,而每次更新也给我们用户带来了大大小小不同的惊喜.但是近来一些用户反应说Win10系统更新一直失败,并出现0xc1900403的错误代码提示. 对于 ...

  9. DataGridView编辑后立即更新到数据库的两种方法

    DataGridView控件是微软预先写好的一个显示数据的控件,功能非常强大,可以显示来自数据库表的数据和XML等其他来源的数据. 方法一:基于DataAdapter对象创建一个CommandBuli ...

  10. Arduino uno 教程~持续更新~

    http://arduino.osall.com/index.html http://study.163.com/search.htm?t=2&p=Arduino http://www.ard ...

随机推荐

  1. 开发必会系列:《深入理解JVM(第二版)》读书笔记

    一  开始前 HotSpot:http://xiaomogui.iteye.com/blog/857821 http://blog.csdn.net/u011521890/article/detail ...

  2. c语言的一些类型声明符

    基本类型: char: 字符类型 int: 整数类型 float: 单精度浮点数类型 double: 双精度浮点数类型 void: 无类型 修饰符: short: 短整数类型 long: 长整数类型 ...

  3. C++设计模式 - 原型模式(Prototype)

    对象创建模式 通过"对象创建" 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式 Fac ...

  4. 2024-04-06:用go语言,给你两个非负整数数组 rowSum 和 colSum, 其中 rowSum[i] 是二维矩阵中第 i 行元素的和, colSum[j] 是第 j 列元素的和,换言之你

    2024-04-06:用go语言,给你两个非负整数数组 rowSum 和 colSum, 其中 rowSum[i] 是二维矩阵中第 i 行元素的和, colSum[j] 是第 j 列元素的和,换言之你 ...

  5. 使用OHOS SDK构建zlib

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从gitee下载源码,当前最新的提交记录ID为04f42ceca40f73e2978b50e93806c2a18c1281fc. 执行如下命令: ...

  6. 基于EtherNet/IP实现欧姆龙NX系列PLC通信

    1.引言 工业以太网协议 (Ethernet/IP) 是由ODVA所开发并得到了罗克韦尔自动化的强大支持.它使用已用于ControlNet和DeviceNet的控制和信息协议 (CIP) 为应用层协议 ...

  7. HMS Core Discovery第15期直播预告|构筑立体世界,共造沉浸式营销

    [导读] AR技术,是一种将真实世界信息和虚拟世界信息"无缝"衔接的技术,现如今AR技术受到日益广泛的关注,在我们生活中发挥着重要的作用,并显示出巨大的潜力--它是如何改变我们观察 ...

  8. Linux程序崩溃自启动方法

    linux进程挂掉后,可以通过配置 systemd 来自动启动服务 1.创建 systemd 服务文件,例如:huyang.service,需要放置在系统文件夹 /etc/systemd/system ...

  9. 家庭实验室系列文章-如何迁移树莓派系统到更大的 SD 卡?

    前言 其实这个专题很久很久之前就想写了,但是一直因为各种原因拖着没动笔. 因为没有资格,也没有钱在一线城市买房 (); 但是在要结婚之前,婚房又是刚需. 我和太太最终一起在一线城市周边的某二线城市买了 ...

  10. 因果推断review

    什么是因果推断? 因果推断(Causal Inference):就是预估对某个对象/群体/人 等 做不做某种干预后产生的结果. 常说'关系不代表因果'. 比如,一项研究表面,吃早餐的女孩比不吃早餐的女 ...