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
作者: WeihanLi
出处:https://www.cnblogs.com/weihanli/p/migrate-wpf-to-netcore5-from-netcore3_1.html
版权:本文采用「CC BY 4.0」知识共享许可协议进行许可。



