WPF 从 .net core 3.1 到 .net 5.0
Intro
昨天更新了一个简单的 asp.net core webapi 项目,从 3.1 更新到了 5.0,今天更新一个 WPF 应用到 net 5.0
项目文件更新
首先项目文件中的 SDK 发生了变化,原来是
Microsoft.NET.Sdk.WindowsDesktop
更新后变为Microsoft.NET.Sdk
,和普通的 Console 应用以及类库应用的 SDK 保持一致项目目标框架修改,从原来的
netcoreapp3.1
变为net5.0-windows
,WPF 中有很多API 都是 Windows 上才可以用的
在以前的 .NET Core 版本中,WinForms 和 WPF 应用使用单独的项目 SDK (Microsoft.NET.Sdk.WindowsDesktop)。从 .NET 5.0 开始,WinForms 和 WPF SDK 已与 .NET SDK (Microsoft.NET.Sdk) 统一。
持续集成配置更新
我目前使用的是 Azure DevOps 来做持续集成的,需要更新持续集成配置以保证 build 不会失败
原来使用的是 dotnet core sdk 3.1,现在更新成 net 5.0 sdk 也需要更新,需要注意的是默认不适用预览版 sdk,而 5.0 还未正式发布,所以需要配置使用预览版 sdk,安装 SDK 是使用的微软封装的一个 Task,详细可以参考文档 https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops
修改如下:
More
我测试了一下,WPF 项目 Target 设置为 net5.0
也可以的,可能微软是想特别表示只能运行在 windows 上吧
于是尝试把项目设置为 net5.0
,但是 Azure 上的持续集成失败了,test 的项目需要是 net5.0-windows
,看起来是可以检测目标平台的,索性直接都改成了 net5.0-windows
了,有兴趣的童鞋可以自己尝试一下
Reference
https://docs.microsoft.com/en-us/dotnet/core/compatibility/3.1-5.0#windows-presentation-framework-wpf
https://docs.microsoft.com/zh-cn/dotnet/core/compatibility/3.1-5.0#windows-presentation-framework-wpf
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops
https://github.com/WeihanLi/DbTool
https://github.com/WeihanLi/DbTool/commit/2d78391d907bbec5137486984d0d057b7d9217c1
https://github.com/WeihanLi/DbTool/commit/ecd2fcb602a22d9dd9a6d0a2be038e07b4933492