다음을 통해 공유


NuGet 오류 NU1011

다음 PackageVersion 항목은 부동 버전을 지정할 수 없습니다. PackageName.

문제

프로젝트는 NuGet Central 패키지 관리를 사용하도록 구성되고 <PackageVersion /> 특성에 대한 부동 버전 값을 지정하는 항목이 Version 정의됩니다.

<ItemGroup>
  <PackageVersion Include="PackageName" Version="1.*" />
</ItemGroup>

기본적으로 항목은 <PackageVersion /> 부동 버전을 지정할 수 없습니다. NuGet의 중앙 패키지 관리는 사용자에게 결정적이고 안전한 복원뿐만 아니라 단일 위치에서 패키지 버전을 관리하는 기능을 제공합니다. 부동 버전을 사용하면 피드에 푸시된 후 빌드에 잘못된 패키지가 도입될 가능성이 있습니다. 이로 인해 리포지토리를 변경하지 않았지만 새 패키지의 문제로 인해 갑자기 문제가 발생하는 상황이 발생할 수 있으며, 부동 버전을 제거하거나 수정된 패키지의 최신 버전을 푸시하지 않고도 정상 상태로 돌아갈 수 있는 방법이 없습니다. 부동이 아닌 버전을 사용하면 패키지로의 모든 업그레이드가 리포지토리의 커밋에 의해 지원되므로 중단의 원인이 된 변경 내용을 쉽게 확인할 수 있으며 커밋을 되돌려 정상 상태로 되돌릴 수 있습니다.

또한 중앙 패키지 관리전이적 고정 기능을 사용하는 경우 부동 버전을 재정의로 사용하면 다른 프로젝트의 복원이 고정되어야 하는 패키지에 대한 다른 버전으로 끝날 수 있으므로 중앙에서 정의된 버전을 사용할 것을 약속하지 않을 수 있습니다.

NuGet은 Dependabot 과 같은 자동화를 사용하여 패키지 버전을 up-to유지하는 것이 좋습니다. 이 방법은 끌어오기 요청의 기존 개발자 워크플로에 통합하고, 자동화된 빌드 유효성 검사를 수행하고, 리포지토리의 커밋으로 지원되는 모든 테스트를 수행하는 간소화된 방식으로 패키지 버전을 업데이트하는 간소화된 방법을 제공합니다.

솔루션

<ItemGroup>
  <PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
  • 가능하지 않거나 중앙 패키지 관리에서 부동 버전을 사용하려는 경우 MSBuild 속성을 설정하여 이 작업을 수행할 수 있습니다.
<PropertyGroup>
  <CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>