日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

vs中如和根据项目生成类图_迁移WPF项目到.NET Core

發(fā)布時(shí)間:2025/3/19 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs中如和根据项目生成类图_迁移WPF项目到.NET Core 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

綜述#

.NET CORE 3.0開(kāi)始,桌面端支持WPF了。很多.NET FRAMEWORK的項(xiàng)目已經(jīng)跑了一陣子了,不是很有必要支持.NET CORE,不過(guò)最近用一個(gè)程序,為了貫徹一些C# 8的特性,需要升級(jí)項(xiàng)目到.NET CORE 3.1。

方法#

參考官方指導(dǎo),需要這么幾步:

  • 了解并更新 NuGet 依賴(lài)項(xiàng):升級(jí)NuGet以使用格式。查看.NET Core或.NET Standard的頂級(jí)NuGet依賴(lài)項(xiàng)兼容性。將NuGet包升級(jí)到較新版本。使用.NET Portability Analyzer分析依賴(lài)項(xiàng)。
  • 將項(xiàng)目文件遷移到新的SDK樣式格式:選擇是同時(shí)生成.NET Core和 .NET Framework,還是僅支持.NET Core。將相關(guān)的項(xiàng)目文件屬性和項(xiàng)復(fù)制到新項(xiàng)目。
  • 修復(fù)生成問(wèn)題:添加對(duì)Microsoft.Windows.Compatibility兼容性包的引用。查找并修復(fù)API-level差異。刪除app.config中appSettings和connectionStrings以外的部分。如有必要,重新生成自動(dòng)生成的代碼。
  • 運(yùn)行時(shí)測(cè)試:確認(rèn)移植的應(yīng)用按預(yù)期工作。注意NotSupportedException異常。
  • 升級(jí)nuget引用#

    原來(lái)的nuget使用packages.config進(jìn)行管理,.netcore已經(jīng)全面使用的形式,因此需要升級(jí)。

    升級(jí)會(huì)彈出一個(gè)對(duì)話框提示,全部勾選上,直接升級(jí)。最后彈出一個(gè)升級(jí)報(bào)告。

    .NET Framework移植分析#

    VS擴(kuò)展市場(chǎng)查找并運(yùn)行.NET Portability Analyzer以分析項(xiàng)目。

    報(bào)告如果分析結(jié)果是

    這個(gè)樣子的,那就沒(méi)問(wèn)題。特別關(guān)注一下.NET CORE,如果不支持,需要想想別的辦法:

  • 替換這個(gè)引用/方法
  • 升級(jí)對(duì)應(yīng)的包
  • 升級(jí)項(xiàng)目文件#

    最關(guān)鍵的一步來(lái)了,需要升級(jí)項(xiàng)目文件以便于支持.NET CORE。其實(shí)步驟很簡(jiǎn)單,用vs生成一個(gè)基于.NET CORE的WPF項(xiàng)目,然后,直接將csproj文件拷貝到原來(lái)的項(xiàng)目文件夾,使用VS添加現(xiàn)有項(xiàng)目,選擇這個(gè)文件,可以發(fā)現(xiàn)原來(lái)的東西都自動(dòng)添加進(jìn)來(lái)了。

    不過(guò)有的項(xiàng)不會(huì)自動(dòng)處理,我們還需要手動(dòng)對(duì)照一下原來(lái)的csproj文件和新的項(xiàng)目csproj文件。看看是不是缺失了一些什么內(nèi)容。

    PackageReference不會(huì)自動(dòng)處理,引用的其他項(xiàng)目也不會(huì),我們需要手動(dòng)粘貼進(jìn)來(lái)。Resource也不會(huì)自動(dòng)添加,可以使用通配符語(yǔ)法程序的圖標(biāo)需要重新添加。

    編譯之后出現(xiàn)這個(gè)錯(cuò)誤。

    .NET CORE程序會(huì)自動(dòng)根據(jù)項(xiàng)目屬性生成這個(gè)信息,如果還有AssemblyInfo.cs文件,就會(huì)沖突。二選一解決這個(gè)問(wèn)題

    • 刪除assemblyinfo.cs,不過(guò)原來(lái)的csproj文件將不可用。
    • 在新項(xiàng)目文件中添加false,禁用自動(dòng)生成的功能。

    修復(fù)生成問(wèn)題#

    有的項(xiàng)目處理完畢之后還有生成錯(cuò)誤,可以考慮引用Microsoft.Windows.Compatibility來(lái)解決一些兼容性的問(wèn)題。

    我的項(xiàng)目出現(xiàn)了很多警告,提示項(xiàng)目package不兼容。

    如果包持續(xù)有人維護(hù)的話,一般情況重新安裝一下對(duì)應(yīng)的包解決這些問(wèn)題。

    Copyupdate-package -reinstall

    還不行的話,那么有概率你的程序不能正常運(yùn)行。不想冒險(xiǎn),就需要找找替代了。比如我手頭上的程序,引用了CookComputing.XmlRpcV2這個(gè)包,不支持.NET CORE,但是在網(wǎng)上搜索一下,可以發(fā)現(xiàn)Kveer.XmlRPC是一個(gè)移植,直接換就好了。

    繼續(xù)運(yùn)行,發(fā)現(xiàn)一直提示資源文件錯(cuò)誤,WPF的Properties.Resources不好用了...有幾種辦法可以解決。

  • 刪除resx文件,將生成屬性設(shè)置為resource并使用Uri參考
  • 刪除resx文件,將生成屬性設(shè)置為Embedded Resource并使用集成資源參考
  • 刪除resx文件,將生成屬性設(shè)置為Content并設(shè)置總是復(fù)制到目標(biāo)目錄,直接讀取文件。
  • 總結(jié)#

    最后編譯,我這邊只有幾個(gè)警告,沒(méi)有錯(cuò)誤了。鑒于程序可以正常運(yùn)行,我這有空再優(yōu)化吧。

    總結(jié)

    以上是生活随笔為你收集整理的vs中如和根据项目生成类图_迁移WPF项目到.NET Core的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。