c# - net - 도트넷 복원 경고 NU1701



.net nuget (2)

PusherClient의 프로젝트에서 .NET 코어를 준비 할 필요가 있습니다.

C #으로 .NETCore를 사용하고 있는데 dotnet restore 하면 다음과 같은 오류가 발생합니다.

PS C : \ workspace \ Arbitrator> dotnet 복원

C : \ workspace \ Arbitrator.csproj : 경고 NU1701 : 프로젝트 타겟 프레임 워크 인 '.NETCoreApp, Version = v2.0'대신 'PusherClient 0.5.0'패키지가 '.NETFramework, Version = v4.6.1'을 사용하여 복원되었습니다. 이로 인해 호환성 문제가 발생할 수 있습니다. C : \ workspace \ Arbitrator.csproj : 경고 NU1701 : '.NETFramework, Version = v4.6.1'대신 'WebSocket4Net 0.14.1'패키지가 프로젝트 대상 프레임 워크 인 '.NETCoreApp, Version = v2.0'대신 복원되었습니다. 이로 인해 호환성 문제가 발생할 수 있습니다.

이 패키지는 문제가 PusherClient 이며, 방금 가져온 문서를 따라 가면서 가져 왔습니다.이 경고는 어떻게 수정합니까?


Answer #1

PusherClient 가 .NET 코어로 업그레이드 될 때까지 기다릴 필요는 없습니다.

.NET Core에서 .NET Framework 4.6.1 (및 그 이하 버전)을 참조하는 것은 .NET Core / Standard 2.0 미리보기 2 / VS 2017 미리보기 15.3 이후 사용 가능한 새로운 기능 이며 MS에 따르면 마이그레이션에 도움이되는 기능으로 생각할 수 있습니다 시간이 지남에 따라 .NET Framework 코드를 .NET Standard 또는 .NET Core로 변환합니다 .

  1. 특정 패키지 또는 모든 패키지에 대해이 경고를 표시하지 않을 수 있습니다 ( NuGet wiki의 시나리오 2 및 3 참조) . 그러나 .NET Core에서 지원하지 않는 WPF와 같은 API를 호출하면 응용 프로그램이 런타임에 실패 할 수 있습니다. 실패의 또 다른 이유는 PusherClient에서 사용되는 네이티브 API 일 수 있습니다. 따라서 광범위하게 테스트해야합니다. 그러나 대부분의 경우 .NET Core가 지원되는 모든 플랫폼에서 작동합니다 ( MathNet.Numerics 종속성이있는 응용 프로그램을 테스트했으며 MathNet.Numerics 도 .NET Framework 4.6.1 임에도 불구하고 Linux에서 작동했습니다).

  2. 앱이 크로스 플랫폼이 <TargetFramework>net461</TargetFramework> csproj의 <TargetFramework>net461</TargetFramework> 에 의해 대상 프레임 워크를 .NET 4.6.1로 변경하면됩니다.