Udostępnij przez


Funkcja PackageReference bez wersji zgłosi błąd

Począwszy od .NET 10, NuGet zgłasza błąd, gdy dla elementu nie określono wersji, zamiast poprzedniego ostrzeżenia.

Nie ma żadnych zmian w przypadku korzystania z centralnego zarządzania pakietami, ponieważ zgodnie z projektem plik XML PackageReference nie powinien mieć wersji w tym scenariuszu.

Wersja wprowadzona

.NET 10

Poprzednie zachowanie

Wcześniej narzędzie NuGet wywołało ostrzeżenie NU1604 z następującym tekstem:

Zależność projektu "PackageA" nie zawiera inkluzywnej niższej granicy. Uwzględnij dolną granicę w wersji zależności, aby zapewnić spójne wyniki przywracania.

Nowe zachowanie

Począwszy od platformy .NET 10, program NuGet zgłasza błąd NU1015 z następującym tekstem:

Następujące elementy PackageReference nie mają określonej wersji: PackageA

Typ zmiany przełamującej

Jest to zmiana zachowania.

Przyczyna zmiany

Komunikat "no lower bound" był mylący, a sposób rozwiązania tego problemu nie był jasny. Ponadto NuGet przywrócił najniższą dostępną wersję tego pakietu, czego deweloperzy rzadko chcą. Ta zmiana zapewnia jaśniejsze i bardziej czytelne komunikaty o błędach, gdy brakuje metadanych wersji.

Dodaj wersję do odwołania pakietu, na przykład:

- <PackageReference Include="Some.Package" />
+ <PackageReference Include="Some.Package" Version="1.2.3" />

Jeśli wymagana jest najniższa wersja pakietu, użyj polecenia Version="0.0.0". W takim przypadku narzędzie NuGet zgłosi ostrzeżenie NU1603, a nie poprzednie nu1604.

Aby przywrócić poprzednie ostrzeżenie, możesz ustawić SdkAnalysisLevel wartość 9.0.300 lub mniejszą. Będzie to jednak miało wpływ na wszystkie funkcje zależne od SdkAnalysisLevel.

Interfejsy API, których dotyczy problem

Żaden.