다음을 통해 공유


NuGet 경고 NU5130

nuspec 및 lib/ref 폴더의 종속성 그룹에 선언된 일부 대상 프레임워크는 호환되는 일치 항목이 있지만 다른 위치에서는 정확히 일치하지 않습니다. 의도적으로 수행하지 않는 한 아래 작업 목록을 참조하세요.

  • 에 대한 종속성 그룹을 추가합니다. NUSpec에 대한 NETFramework4.7.2

문제

패키지의 디렉터리에는 lib/<tfm>/ 경고 메시지에 지정된 TFM(대상 프레임워크 모니커)에 대한 파일이 하나 이상 포함되어 ref/<tfm>/ 있습니다. 그러나 파일에 이 TFM nuspec 에 대한 종속성 그룹이 없습니다. 이로 인해 패키지 소비자는 패키지가 TFM과 호환되지 않는다고 생각하게 될 수 있습니다. 지정된 TFM에 대한 어셈블리에 종속성 그룹에 정의된 호환되는 TFM과 다른 종속성이 있는 경우 패키지를 사용하는 프로젝트에서 런타임 오류가 발생할 수 있습니다.

솔루션

  • 프로젝트에서 NuGet의 팩 대상 실행

가능하면 프로젝트의 대상 프레임워크에서 종속성 그룹과 어셈블리 TFM을 자동으로 일치하므로 NuGet의 MSBuild 팩 대상을 사용합니다. 프로젝트는 자체 NuGet 종속성에 사용해야 PackageReference 합니다. 프로젝트에서 packages.config를 사용하는 경우 파일과 nuspec 함께 사용해야 nuget.exe pack 합니다.

  • 수동으로 파일 편집 nuspec

사용자 지정 nuspec 파일을 사용하는 경우 종속성이 호환되는 lib/ ref/ 다음 TFM과 동일한 경우에도 일치하는 종속성 그룹이 있거나 어셈블리가 있는 각 TFM을 사용하는 것이 좋습니다. 예를 들어 패키지에 어셈블리와 netstandard2.0 어셈블리가 포함되어 netstandard1.0 있고 종속성이 둘 다 동일한 경우 두 TFM을 중복 종속성 항목이 있는 종속성 그룹으로 나열하는 것이 좋습니다.

어셈블리 경로에 사용되는 TFM 식별자는 종속성 그룹에 사용되는 TFM 식별자와 다른 형식을 사용합니다. 경고 메시지는 종속성 그룹에서 사용할 올바른 이름을 지정합니다. 패키지에 해당 대상 프레임워크에 대한 종속성이 없는 경우 빈 그룹을 사용합니다. 예시:

<package>
  <metadata>
    ...
    <dependencies>
      <group targetFramework=".NETFramework4.7.2" />
    </dependencies>
  </metadata>
  ...
<package>
  • lib/ 또는 ref/ 파일 제거

패키지가 보고된 TFM과 호환되지 않도록 하려면 해당 TFM에 대한 패키지에 파일이 없거나 파일이 없 lib/<tfm>/ ref/<tfm>/ 도록 프로젝트를 수정합니다. 예를 들어 경고에 대한 .NETFramework4.7.2 종속성 그룹을 추가하라는 경고가 nuspec표시되면 패키지에서 모든 lib/net472/* 파일과 ref/net472/* 파일을 제거합니다.