C# WPF实战项目升级了

2022-04-19 08:46:51 浏览数 (3)

概述

之前用Caliburn.Micro搭建的WPF实战项目,CM框架选用了 3.0.3,实际上CM框架目前最新版已经到4.0。173了,所有很有必须升级一下项目了. 本来打算把平台框架也直接升级到.NET 6 的,但是项目里面很多库不支持最新的平台版本,所以主要针对CM框架进行升级.

升级步骤

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

这样做的好处包括精简内容与以及不再需要额外的packages.config文件

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

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

代码语言:javascript复制
  <ItemGroup>
    <PackageReference Include="Caliburn.Micro">
      <Version>3.0.3</Version>
    </PackageReference>
    <PackageReference Include="Common.Logging.Log4Net1213">
      <Version>3.4.1</Version>
    </PackageReference>
    <PackageReference Include="EmguCV">
      <Version>3.1.0.1</Version>
    </PackageReference>
    <PackageReference Include="Extended.Wpf.Toolkit">
      <Version>4.2.0</Version>
    </PackageReference>
    <PackageReference Include="log4net">
      <Version>2.0.3</Version>
    </PackageReference>
    <PackageReference Include="PropertyChanged.Fody">
      <Version>3.1.3</Version>
    </PackageReference>
  </ItemGroup>

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

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

CM4.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,现在都支持异步实现。

升级后的项目源码下载

百度网盘下载链接:https://pan.baidu.com/s/1xEW5Hg82wGqwaKuVODUQ0A

提取码:xs4t

0 人点赞