다음을 통해 공유


NuGet 경고 NU5127

이 패키지는 lib/또는 ref/폴더를 포함하지 않으므로 모든 프레임워크에 대해 호환되는 것으로 처리됩니다. net45, netstandard2.0의 빌드/디렉터리에서 프레임워크 관련 파일이 발견되었으므로 다음 빈 파일을 만들어 패키지의 호환성을 올바르게 좁히는 것이 좋습니다.
-lib/net45/.
-lib/netstandard2.0/.

문제

사용만 lib/ 있는 PackageReference 패키지와 ref/ 어셈블리를 사용하여 패키지 호환성을 결정하는 프로젝트입니다. 따라서 파일 또는 ref/ 파일이 없는 lib/ 패키지는 모든 프로젝트와 호환되는 것으로 간주됩니다. 그러나 하나 이상의 대상 프레임워크와 관련된 MSBuild 소품 또는 대상이 포함된 패키지는 해당 대상 프레임워크와만 호환되는 의도를 보여 줍니다.

예를 들어 패키지 PackageA 에 단일 파일이 포함되어 있다고 생각해 보세요 build/net8.0/PackageA.targets. 이 패키지가 프로젝트 대상 net48 지정(.NET Framework, 버전 4.8)에서 참조되는 경우 NuGet은 경고 또는 오류를 내보내지 않고 패키지에서 자산을 선택하지 않습니다. 따라서 패키지 소비자에게 패키지가 해당 프로젝트에서 제대로 작동하지 않는다는 알림이 표시되지 않습니다.

해결 방법

경고 메시지에서 설명한 대로 나열된 TFM의 lib 폴더에 명명 _._ 된 빈 파일을 만듭니다. 이렇게 하면 프로젝트가 패키지와 호환되지 않는 경우 NuGet이 프로젝트에 대한 PackageReference 복원에 실패할 수 있습니다.

패키지가 모든 대상 프레임워크와 호환되지만 특정 대상 프레임워크에만 적용되는 경우 콘텐츠가 포함된 파일을 build/{PackageId}.props 만듭니다 <Project />.