2017-07-01 37 views
19

Tôi đang sử dụng .NETCore với C# và khi tôi đã làm dotnet restore nó đã cho các lỗi sau:DotNet khôi phục cảnh báo NU1701

PS C:\workspace\Arbitrator> dotnet restore

C:\workspace\Arbitrator\Arbitrator.csproj : warning NU1701: Package 'PusherClient 0.5.0' was restored using '.NETFramework,Version=v4.6.1' instead the project target framework '.NETCoreApp,Version=v2.0'. This may cause compatibility problems. C:\workspace\Arbitrator\Arbitrator.csproj : warning NU1701: Package 'WebSocket4Net 0.14.1' was restored using '.NETFramework,Version=v4.6.1' instead the project target framework '.NETCoreApp,Version=v2.0'. This may cause compatibility problems.

gói trong vấn đề này là PusherClient, tôi chỉ đi theo các tài liệu nugget để nhập nó, làm thế nào tôi có thể khắc phục cảnh báo này không?

Trả lời

16

Bạn không nhất thiết phải đợi đến PusherClient được nâng cấp cho .NET Core.

Tham khảo .NET Framework 4.6.1 (hoặc thấp hơn) từ NET Core là một new feature sẵn từ NET Core/Tiêu chuẩn 2.0 preview 2/VS 2017 preview 15.3 và theo MS nó có thể được dùng như một tính năng giúp bạn di chuyển mã .NET Framework sang .NET Standard hoặc .NET Core theo thời gian.

  1. Bạn chỉ có thể chặn cảnh báo này cho gói cụ thể hoặc cho tất cả các gói: see scenarios 2 and 3 in NuGet wiki. Mặc dù vậy, có thể ứng dụng của bạn có thể bị lỗi trong thời gian chạy khi bạn gọi một API (như một thứ gì đó từ WPF) không được .NET Core hỗ trợ. Một lý do khác của sự thất bại có thể là các API gốc có thể được sử dụng bởi PusherClient. Vì vậy, bạn nên kiểm tra nó rộng rãi. Nhưng trong hầu hết các trường hợp, nó sẽ chỉ hoạt động trên tất cả các nền tảng mà .NET Core được hỗ trợ (tôi đã thử nghiệm một ứng dụng với MathNet.Numerics sự phụ thuộc và nó hoạt động trên Linux mặc dù MathNet.Numerics cũng là Khuôn khổ .NET 4.6.1) .

  2. Nếu bạn không cần ứng dụng của mình là nền tảng chéo, chỉ cần thay đổi khung mục tiêu thành .NET 4.6.1 theo <TargetFramework>net461</TargetFramework> trong csproj.

+0

Có thể chặn cảnh báo như vậy không? – mateuszlewko

+1

Có, hãy đặt NU1701 vào csproj của bạn –

5

Bạn cần phải nói với các bạn từ PusherClient để làm cho dự án của họ .NET-Core sẵn sàng.

+0

Điều gì làm cho thư viện không .NET-Core sẵn sàng chưa? Nó đã có trong nuget.org, vì vậy tôi nghĩ rằng nó là OK để sử dụng nó? – fluter

+1

@fluter PusherClient là một thư viện .Net Framework. Để sử dụng nó trên .Net Core 1.x, nó sẽ cần phải được thay đổi thành thư viện .Net chuẩn 1.x. – svick

+1

@fluter Nhưng [theo MS] (https://blogs.msdn.microsoft.com/dotnet/2017/06/28/announcing-net-core-2-0-preview-2/) nó là một tính năng mới của phiên bản 2.0 của .NET Core mà bạn có thể tham khảo các thư viện .NET Framework 4.6.1 (và bên dưới). – Sourcerer

Các vấn đề liên quan