![](/img/trans.png)
[英]NU1701, NU1202 package restore errors on fresh Windows/VS setup
[英]dotnet restore warning NU1701
我在 C# 中使用 .NET Core,當我執行dotnet restore
,出現以下錯誤:
PS C:\\workspace\\Arbitrator> dotnet restore
C:\\workspace\\Arbitrator\\Arbitrator.csproj:警告 NU1701:使用“.NETFramework,Version=v4.6.1”而不是項目目標框架“.NETCoreApp,Version=v2.0”還原包“PusherClient 0.5.0”。 這可能會導致兼容性問題。 C:\\workspace\\Arbitrator\\Arbitrator.csproj:警告 NU1701:使用“.NETFramework,Version=v4.6.1”而不是項目目標框架“.NETCoreApp,Version=v2.0”還原包“WebSocket4Net 0.14.1”。 這可能會導致兼容性問題。
這個有問題的包是PusherClient 。 我只是按照 NuGet 文檔來導入它。 我該如何解決這個警告?
您不必等到PusherClient升級到 .NET Core。
從 .NET Core 引用 .NET Framework 4.6.1(及以下)是自 .NET Core/Standard 2.0 preview 2 / VS 2017 preview 15.3 以來可用的一項新功能,據 MS 稱,它可以被認為是一項有助於隨着時間的推移,您將 .NET Framework 代碼遷移到 .NET Standard 或 .NET Core 。
你可以抑制這個警告
<PackageReference Include="Contoso.Base.API" Version="1.0.3"> <NoWarn>NU1701</NoWarn> </PackageReference>
<NoWarn>NU1701</NoWarn>
有關從 GUI 執行此操作的方法,請參閱 NuGet wiki 中的方案 2 和 3 。
但是,當您調用 .NET Core 不支持的 API(如 WPF 中的某些內容)時,您的應用程序可能會在運行時失敗。 失敗的另一個原因可能是PusherClient可能使用的本機 API。 所以你應該廣泛地測試它。 但在大多數情況下,它只能在支持 .NET Core 的所有平台上運行(例如,我測試了一個具有MathNet.Numerics依賴項的應用程序,它在 Linux 上運行,即使MathNet.Numerics也是 .NET Framework 4.6.1 )。
如果您不需要跨平台的應用程序,只需將以下內容添加到您的 csproj 文件中,將其目標框架更改為 .NET 4.6.1:
<TargetFramework>net461</TargetFramework>
作為旁注,不要這樣做:
<PropertyGroup>
<NoWarn>NU1701</NoWarn>
</PropertyGroup>
這樣做會破壞從其他地方獲取的任何其他 NoWarn 設置,例如從 directory.build.prop 文件中獲取。 相反,請執行以下操作:
<PropertyGroup>
<NoWarn>$(NoWarn);NU1701</NoWarn>
</PropertyGroup>
這樣,所有全局設置都會被保留。
對於 .NET Core 1.x:
你需要告訴 PusherClient 的人准備好他們的項目 .NET-Core。
正如 Yair 所指出的,GitHub 上有一個圍繞這個主題的未決問題: github.com/NuGet/Home/issues/5740 。
如果使用回退框架版本解決的依賴項是可傳遞的,則禁止引用包的警告將不起作用。
例如,Microsoft.TeamFoundationServer.ExtendedClient 依賴於與 .NET Core 3.0 不兼容的 Microsoft.AspNet.WebApi.Core,從而導致警告。 將 NoWarn 添加到 Microsoft.TeamFoundationServer.ExtendedClient 將不起作用。
作為一種解決方法(您可以在此處查看我的帖子: GitHub 問題上的解決方法),您可以直接引用傳遞依賴項並對該包使用 NoWarn。
<ItemGroup>
<PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.3" NoWarn="NU1701" />
<PackageReference Include="Microsoft.TeamFoundationServer.ExtendedClient" Version="16.153.0"/>
</ItemGroup>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.