다음을 통해 공유


NuGet 오류 NU1011

중앙에서 정의된 부동 패키지 버전은 허용되지 않습니다.

문제

기본적으로 항목에는 <PackageVersion /> 부동 버전을 포함할 수 없습니다. NuGet의 CPM(중앙 패키지 관리)은 보다 쉬운 버전 관리와 결정적이고 안전한 복원을 제공하는 엔터프라이즈 수준 기능으로 간주됩니다. 부동 버전을 사용하면 피드에 푸시된 후 빌드에 잘못된 패키지가 도입될 가능성이 있습니다. 이로 인해 리포지토리를 변경하지 않았지만 갑자기 무언가가 손상되어 부동 버전을 제거하거나 수정된 패키지의 최신 버전을 푸시하지 않고 다시 정상 상태로 돌아갈 수 있는 방법이 없는 상황이 발생할 수 있습니다. 부동이 아닌 버전을 사용하면 패키지로의 모든 업그레이드가 리포지토리의 커밋을 통해 지원되므로 중단의 원인을 쉽게 파악하고 커밋을 되돌려 정상 상태로 되돌릴 수 있습니다.

전이적 고정 기능은 더 많은 제어를 위해 그래프의 전이적 버전을 명시적으로 재정의할 수 있도록 설계되었습니다. 부동 버전을 재정의로 사용하면 다른 프로젝트의 복원이 고정되어야 하는 패키지에 대한 다른 버전으로 끝날 수 있으므로 중앙 버전을 사용할 것을 약속하지 않을 수 있습니다.

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

솔루션

부동 버전을 부동 버전이 아닌 버전 범위변경하는 것이 좋습니다. 가능하지 않은 경우 MSBuild 속성을 설정하여 CPM에서 부동 버전을 사용하도록 설정할 수 있습니다.

<PropertyGroup>
  <CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>