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