Udostępnij za pośrednictwem


Zestaw SDK nie wywołuje już funkcji ResolvePackageDependencies

Wcześniej zestaw SDK platformy .NET nazwał element docelowy ResolvePackageDependencies w celu wygenerowania PackageDependencies i PackageDefinitions. Jednak te dane były już dostępne z innego miejsca docelowego. Zamiast tego te dwa elementy są teraz dodawane z PreprocessPackageDependenciesDesignTime do pamięci podręcznej kompilacji w czasie projektowania, a poprzedni element docelowy nie jest wywoływany.

Wprowadzona wersja

Zestaw .NET SDK 7.0.200

Typ zmiany

Ta zmiana może mieć wpływ na zgodność źródła.

Poprzednie zachowanie

Istniejący element docelowy zestawu .NET SDK został wywołany, aby uzyskać informacje o pakietach, które były już dostępne.

Nowe zachowanie

Informacje o pakiecie są dodawane z PreprocessPackageDependenciesDesignTime do pamięci podręcznej kompilacji w czasie projektowania. Jeśli zależysz od PackageDependencies kompilacji i PackageDefinitions w jej kompilacji, zobaczysz błędy kompilacji, takie jak Nie znaleziono zależności.

Przyczyna wprowadzenia zmiany

W niektórych sytuacjach wydajność była szczególnie niska dla poprzedniego celu. Rozwiązania z dużymi grafami zależności NuGet będą widzieć szybszą funkcję IntelliSense po załadowaniu rozwiązania, przełączeniu gałęzi lub wprowadzeniu zmian w całym rozwiązaniu podczas korzystania z funkcji zarządzania pakietami centralnymi.

Jeśli kompilacja zależy od poprzedniego zachowania, dodaj <EmitLegacyAssetsFileItems>true</EmitLegacyAssetsFileItems> właściwość do projektu, aby powrócić do starszego zachowania. Oczekujemy, że będzie to miało wpływ tylko na niewielką liczbę użytkowników.

<PropertyGroup>
  <EmitLegacyAssetsFileItems>true</EmitLegacyAssetsFileItems>
</PropertyGroup>