WPF 從 .net core 3.1到 .net 5.0
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,詳細可以參考文檔 //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
- //docs.microsoft.com/en-us/dotnet/core/compatibility/3.1-5.0#windows-presentation-framework-wpf
- //docs.microsoft.com/zh-cn/dotnet/core/compatibility/3.1-5.0#windows-presentation-framework-wpf
- //docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops
- //github.com/WeihanLi/DbTool
- //github.com/WeihanLi/DbTool/commit/2d78391d907bbec5137486984d0d057b7d9217c1
- //github.com/WeihanLi/DbTool/commit/ecd2fcb602a22d9dd9a6d0a2be038e07b4933492