C# WPF实战项目升级了

概述

之前使用Caliburn.Micro框架搭建的WPF实战项目,采用的版本是3.0.3,而目前Caliburn.Micro框架已经更新到4.0.173版本,因此有必要对项目进行升级。虽然最初计划将整个平台框架升级到.NET 6,但由于项目中许多库不支持最新平台版本,所以主要针对Caliburn.Micro框架进行升级。

升级步骤:

step1:将

packages.config
迁移到
PackageReference
(非必须)

这样做的好处是可以简化内容,并且不再需要额外的

packages.config
文件。

step2:在弹出的对话框中,会列出顶级依赖项和传递依赖项,并询问是否将后者升级到顶级依赖项。这个项目无需做任何改变,直接点击“确定”:

step3:打开

Caburn.Micro.Hello.csproj
,会发现少了一些东西,但多了下面这段经过精简的NuGet引用。在“管理NuGet程序包”的页面也可以看到已安装的NuGet变少了:


  
    3.0.3
  
  
    3.4.1
  
  
    3.1.0.1
  
  
    4.2.0
  
  
    2.0.3
  
  
    3.1.3
  

step4:在更新里面全选需要升级的项目,点击更新。

step5:升级完成后,运行项目,会看到有报错,这些主要是Caliburn.Micro框架新版本的变更引起的,根据需求修改代码:

Caliburn.Micro 4.0的主要变更包括:

  • 支持的其他平台:.NET Core 3.1 WPF、.NET 5 WPF。
  • 已删除对以下平台的支持:Silverlight 5、Windows Phone 8(Silverlight)、Windows Phone 8(Windows运行时)、Windows 8.1、.NET 4.0用于WPF。支持的WPF的.NET最低版本是4.6.1,所有这些平台在3.x版本中仍然受支持。
  • 重大变化:4.0.0版本中包含的更改包括目标平台已更改,以支持新.NET平台版本。这些措施包括:
    • 事件聚合器:事件聚合器有一些重大的突破性更改,将其引入异步实现方法,这是4.0.0的主要原因。完整的更改可在事件聚合器迁移文档中找到。
    • 屏幕和视图模型生命周期:所有支持视图模型生命周期的接口,如
      IActivate
      IGuardClose
      ,现在都支持异步实现。

升级后的项目源码下载链接:百度网盘,提取码:xs4t。