vs中如和根据项目生成类图_迁移WPF项目到.NET Core
綜述#
.NET CORE 3.0開始,桌面端支持WPF了。很多.NET FRAMEWORK的項目已經跑了一陣子了,不是很有必要支持.NET CORE,不過最近用一個程序,為了貫徹一些C# 8的特性,需要升級項目到.NET CORE 3.1。
方法#
參考官方指導,需要這么幾步:
升級nuget引用#
原來的nuget使用packages.config進行管理,.netcore已經全面使用的形式,因此需要升級。
升級會彈出一個對話框提示,全部勾選上,直接升級。最后彈出一個升級報告。
.NET Framework移植分析#
VS擴展市場查找并運行.NET Portability Analyzer以分析項目。
報告如果分析結果是
這個樣子的,那就沒問題。特別關注一下.NET CORE,如果不支持,需要想想別的辦法:
升級項目文件#
最關鍵的一步來了,需要升級項目文件以便于支持.NET CORE。其實步驟很簡單,用vs生成一個基于.NET CORE的WPF項目,然后,直接將csproj文件拷貝到原來的項目文件夾,使用VS添加現有項目,選擇這個文件,可以發現原來的東西都自動添加進來了。
不過有的項不會自動處理,我們還需要手動對照一下原來的csproj文件和新的項目csproj文件。看看是不是缺失了一些什么內容。
PackageReference不會自動處理,引用的其他項目也不會,我們需要手動粘貼進來。Resource也不會自動添加,可以使用通配符語法程序的圖標需要重新添加。
編譯之后出現這個錯誤。
.NET CORE程序會自動根據項目屬性生成這個信息,如果還有AssemblyInfo.cs文件,就會沖突。二選一解決這個問題
- 刪除assemblyinfo.cs,不過原來的csproj文件將不可用。
- 在新項目文件中添加false,禁用自動生成的功能。
修復生成問題#
有的項目處理完畢之后還有生成錯誤,可以考慮引用Microsoft.Windows.Compatibility來解決一些兼容性的問題。
我的項目出現了很多警告,提示項目package不兼容。
如果包持續有人維護的話,一般情況重新安裝一下對應的包解決這些問題。
Copyupdate-package -reinstall還不行的話,那么有概率你的程序不能正常運行。不想冒險,就需要找找替代了。比如我手頭上的程序,引用了CookComputing.XmlRpcV2這個包,不支持.NET CORE,但是在網上搜索一下,可以發現Kveer.XmlRPC是一個移植,直接換就好了。
繼續運行,發現一直提示資源文件錯誤,WPF的Properties.Resources不好用了...有幾種辦法可以解決。
總結#
最后編譯,我這邊只有幾個警告,沒有錯誤了。鑒于程序可以正常運行,我這有空再優化吧。
總結
以上是生活随笔為你收集整理的vs中如和根据项目生成类图_迁移WPF项目到.NET Core的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动词ing基本用法_百因必有果,你的“福
- 下一篇: 开机直接进入键盘布局_不要亏待了你的手指