Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Następujące elementy PackageVersion nie mogą określać wersji przestawnej: PackageName.
Problem
Projekt jest skonfigurowany do używania centralnego zarządzania pakietami NuGet, a <PackageVersion /> element jest zdefiniowany, który określa zmienną wartość wersji atrybutu Version :
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.*" />
</ItemGroup>
Domyślnie <PackageVersion /> elementy nie mogą określać wersji zmiennoprzecinkowych.
Centralne zarządzanie pakietami NuGet umożliwia użytkownikom zarządzanie wersjami pakietów w jednej lokalizacji, 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 z powodu problemu w nowym pakiecie i nie ma możliwości powrotu do dobrego stanu bez usuwania przestawnej wersji lub wypychania nowszej wersji pakietu, która została naprawiona.
Korzystanie z nieprzecinkowych wersji oznacza, że każde uaktualnienie do pakietu jest wspierane przez zatwierdzenie w repozytorium, co ułatwia określenie, jaka zmiana spowodowała przerwanie i umożliwia przywrócenie zatwierdzenia w celu powrotu do dobrego stanu.
Ponadto w przypadku korzystania z przechodniej funkcji przypinania centralnego zarządzania pakietami użycie wersji przestawnej jako zastąpienia może spowodować przywrócenie różnych projektów kończy się różnymi wersjami pakietu, które mają zostać przypięte, w związku z czym będzie sprzeczne z obietnicą użycia centralnie zdefiniowanej wersji.
NuGet zaleca użycie automatyzacji, takiej jak Dependabot , aby zachować wersje pakietów up-to-date, która zapewnia usprawniony sposób aktualizowania wersji 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:
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
- Jeśli nie jest to możliwe lub chcesz używać wersji zmiennoprzecinkowych z centralną funkcją zarządzania pakietami, możesz to zrobić, ustawiając właściwość MSBuild:
<PropertyGroup>
<CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>