[英]VS2017 Problem Migrating to Nuget PackageReference
Visual Studio VS2017 v15.9.3
Nuget v4.7.1.5393
我們正在嘗試遷移項目以使用Nuget PackageReference。 在使用packages.config時,Nuget會正確確定該軟件包與項目的目標框架匹配。 但是,當我們嘗試遷移到PackageReference時,Nuget會拋出錯誤,表明該軟件包不支持目標框架。
Packages.config:包ID =“ xxx.yyy”版本=“ 7.7.7” targetFramework =“ net462”
嘗試使用PackageReference時出錯:
NU1202:軟件包xxx.yyy 7.7.7與net462不兼容(.NETFramework,Version = v4.6.2)。 軟件包xxx.yyy 7.7.7不支持任何目標框架。
NU1202:軟件包xxx.yyy 7.7.7與net462(.NETFramework,Version = v4.6.2)/ win不兼容。 軟件包xxx.yyy 7.7.7不支持任何目標框架。
NU1202:軟件包xxx.yyy 7.7.7與net462(.NETFramework,Version = v4.6.2)/ win-x64不兼容。 軟件包xxx.yyy 7.7.7不支持任何目標框架。
NU1202:軟件包xxx.yyy 7.7.7與net462(.NETFramework,Version = v4.6.2)/ win-x86不兼容。 軟件包xxx.yyy 7.7.7不支持任何目標框架。
程序包還原失敗。 回滾“ ClassLibrary1”的程序包更改。
2018年12月7日更新。
在使用packageReference模式時,我們如何創建軟件包以及Nuget如何解釋它似乎存在多個問題。
首先是我們如何指定目標。 在package.config模式下的Nuget能夠確定target =“ lib \\ net462 \\ project1”目標.Net 4.62框架,但是當Nuget在PackageReference模式下時,目標必須更改為target =“ lib \\ net462”。
另一個問題是,在package.config模式下,當您具有多種架構(x86,x84,AnyCpu)時,nuget更為寬容,您可以將所有它們都包含在標記中。
另外,甚至不要考慮嘗試在解決方案中使用一些項目,其中一些使用packages.config,而另一些使用packageReference。 為此,不必嘗試使用默認軟件包管理格式的不同設置運行VS實例。
我們發現,在嘗試轉換時,必須刪除解決方案中的obj文件夾,然后重新啟動VS以清除其中的一些問題。
VS2017問題遷移到Nuget包參考
根據錯誤消息,您似乎是針對多個框架的。 如果是,那就是您收到此問題的原因。 因為nuget不會自動獲取PackageReference
或project.json
依賴項。 而且它不適用於新的.NET SDK多目標項目。
檢查此線程以獲取更多詳細信息。
要解決此問題,您可以按照以下文檔介紹如何針對多個框架:
如何將netstandard2.0添加到C#.NET 4.5類庫
此外,已經淘汰了PCL庫方法,您現在必須選擇.NETStandard。 您可以使用“類庫(.NET標准)”項目模板啟動該項目。 現在,您有了默認情況下使用packagereference的項目。
檢查此線程 。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.