簡體   English   中英

VS2017問題遷移到Nuget包參考

[英]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不會自動獲取PackageReferenceproject.json依賴項。 而且它不適用於新的.NET SDK多目標項目。

檢查此線程以獲取更多詳細信息。

要解決此問題,您可以按照以下文檔介紹如何針對多個框架:

如何將netstandard2.0添加到C#.NET 4.5類庫

此外,已經淘汰了PCL庫方法,您現在必須選擇.NETStandard。 您可以使用“類庫(.NET標准)”項目模板啟動該項目。 現在,您有了默認情況下使用packagereference的項目。

檢查此線程

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM