WPF 從 .net core 3.1到 .net 5.0
阿新 • • 發佈:2020-09-22
# 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
-
-
-
-
-
-