Udostępnij za pośrednictwem


Błąd narzędzia NuGet NU1011

Centralnie zdefiniowane wersje pakietów zmiennoprzecinkowych nie są dozwolone.

Problem

Domyślnie <PackageVersion /> elementy nie mogą zawierać wersji zmiennoprzecinkowych. Centralne zarządzanie pakietami NuGet (CPM) jest uważane za funkcję na poziomie przedsiębiorstwa, która zapewnia łatwiejsze zarządzanie wersjami na dużą skalę, a także deterministyczne i bezpieczne przywracanie. Użycie wersji zmiennoprzecinkowych wprowadza możliwość wprowadzenia złego pakietu do kompilacji po wypchnięciu do kanału informacyjnego. Może to prowadzić do sytuacji, w której nie wprowadzono żadnych zmian w repozytorium, ale nagle coś jest uszkodzone i nie ma możliwości powrotu do dobrego stanu bez usuwania przestawnej wersji lub wypychania nowszej wersji pakietu, która została naprawiona. Użycie nieprzecinkowych wersji oznacza, że każde uaktualnienie do pakietu jest wspierane przez zatwierdzenie w repozytorium, co ułatwia określenie, jakie zmiany spowodowały przerwanie i przywrócenie zatwierdzenia w celu powrotu do dobrego stanu.

Funkcja przypinania przechodniego została zaprojektowana tak, aby umożliwić jawne zastąpienie przejściowych wersji wykresu w celu uzyskania większej kontroli. Użycie wersji przestawnej jako przesłonięcia może spowodować przywrócenie różnych projektów w końcu z różnymi wersjami pakietu, który ma zostać przypięty, w związku z czym będzie sprzeczne z obietnicą użycia wersji centralnej.

NuGet zaleca korzystanie z automatyzacji, takiej jak Dependabot , aby zapewnić aktualność wersji pakietów, co zapewnia usprawniony sposób utrzymywania aktualizacji pakietów podczas integracji z istniejącym przepływem pracy dewelopera żądania ściągnięcia, zautomatyzowanej weryfikacji kompilacji i testowania wszystkich wspieranych przez zatwierdzenie w repozytorium.

Rozwiązanie

Zaleca się zmianę wersji zmiennoprzecinkowej na zmienny zakres wersji. Jeśli nie jest to możliwe, możesz włączyć wersje zmiennoprzecinkowe za pomocą narzędzia CPM, ustawiając właściwość MSBuild:

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