1. 程式人生 > >WPF 從 .net core 3.1到 .net 5.0

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 ## 專案檔案更新 1. 首先專案檔案中的 SDK 發生了變化,原來是 `Microsoft.NET.Sdk.WindowsDesktop` 更新後變為 `Microsoft.NET.Sdk`,和普通的 Console 應用以及類庫應用的 SDK 保持一致 2. 專案目標框架修改,從原來的 `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) 統一。 ![](https://img2020.cnblogs.com/blog/489462/202009/489462-20200921232934049-961730686.png) ## 持續整合配置更新 我目前使用的是 Azure DevOps 來做持續整合的,需要更新持續整合配置以保證 build 不會失敗 原來使用的是 dotnet core sdk 3.1,現在更新成 net 5.0 sdk 也需要更新,需要注意的是預設不適用預覽版 sdk,而 5.0 還未正式釋出,所以需要配置使用預覽版 sdk,安裝 SDK 是使用的微軟封裝的一個 Task,詳細可以參考文件 修改如下: ![](https://img2020.cnblogs.com/blog/489462/202009/489462-20200921233154940-182226935.png) ## More 我測試了一下,WPF 專案 Target 設定為 `net5.0` 也可以的,可能微軟是想特別表示只能執行在 windows 上吧 於是嘗試把專案設定為 `net5.0`,但是 Azure 上的持續整合失敗了,test 的專案需要是 `net5.0-windows`,看起來是可以檢測目標平臺的,索性直接都改成了 `net5.0-windows` 了,有興趣的童鞋可以自己嘗試一下 ## Reference -
- - - - -