Поделиться через


Заметки о выпуске NuGet 6.10

Средства распространения NuGet:

Версия NuGet Доступно в версии Visual Studio Доступно в пакетах SDK для .NET
6.10.2 Visual Studio 2022 версии 17.10 8.0.3xx1

1 Установлен с Visual Studio 2022 с любой рабочей нагрузкой .NET

Сводка. Новые возможности 6.10.2

Исправления в этом выпуске

  • Повторное включение централизованного управления пакетами неявно при наличии Directory.Packages.props — #11834

Список фиксаций в этом выпуске

1 Установлен с Visual Studio 2022 с любой рабочей нагрузкой .NET

Сводка. Новые возможности 6.10.1

Исправления в этом выпуске

  • Восстановление и обновление Visual Studio и PMC завершается ошибкой, если несколько проектов packages.config в решении имеют одинаковое имя (элемент с одним ключом уже добавлен) — #13465

  • ##[error]Команда nuget завершилась сбоем с кодом выхода(1) и ошибкой(Элемент с тем же ключом уже добавлен. - #13456

Список фиксаций в этом выпуске

Сводка. Новые возможности версии 6.10

  • [Функция]: добавление команды конфигурации dotnet nuget — #12469

  • Предупреждение об обнаружении уязвимостей во время восстановления packages.config — #12307

  • Отображение панели сведений об уязвимостях при наличии уязвимостей в проектах на основе packages.config. - #13271

  • [Ошибка]: поставщик учетных данных VS неправильно задает значение isRetry - #11210

  • Пакет dotnet list --уязвимый требует постоянного входа в 3-й сторонний веб-канал nuget - #12456

Известные проблемы 6.10.0

NuGet.exe 6.10.0 и Visual Studio 17.10.0 могут иметь сбои во время операций NuGet для проектов с помощью packages.config в следующих сценариях:

  • Два или более проектов в решении имеют одинаковое имя
  • Два или более проектов в решении используют один и тот же файл packages.config (файлы проекта существуют в одном каталоге).

Эти проблемы были исправлены в NuGet.exe 6.10.1 и Visual Studio 17.10.2.

Проблемы и обсуждения для общедоступного отслеживания можно найти в следующих местах:

Критические изменения

  • Добавление заметок, допускающих значение NULL, в NuGet.Configuration — #13250

  • [Поиск пакетов Dotnet] Результат поиска пакета должен быть "версия" вместо "latestVersion" при выполнении команды "dotnet package search <Name> --exact-match --format json" - #13158

  • ResolvedDependencyKey должен быть структурой для уменьшения выделения памяти — #13138

  • [DCR]: централизованное управление пакетами — уважайте props-файл как способ согласия на эту функцию. - #11834

  • Удаление NuGet.Packaging.Core — #12495

Исправления в этом выпуске

  • Предупреждайте при обнаружении уязвимостей во время восстановления packages.config в сценариях CLI. - #13253

  • Остановите использование JObject в файле ресурсов для чтения, чтобы сократить выделение. #12715

  • Добавление трассировки событий для восстановления для измерения производительности — #13274

  • Чтение auditSources из файлов конфигурации nuget.config — #13211

  • SourceRepository.GetResourceAsync должен быть отменен. - #13234

  • CreateWalkAsync не должен быть рекурсивным — #13222

  • ProjectModel.HashObjectWriter.OnFlush использует хэш SHA512 по сравнению с более дешевым хэшом, который кажется, как перекилль - #13214

  • Метаданные пакета владельца — это массив в ФОРМАТЕ JSON, но строка в типах протокола — #13186

  • Поиск пакета dotnet --подробный подробный выходной таблицы слишком широкий — #13162

  • Вызовы в SetWarningProperties() имеют расходы на выделение из-за нескольких перечислений - #13151

  • Использование ConcurrentStack в реализации пула объектов создает большие объемы выделений — #13147

  • В полях IsBestVersion перечислители HashSet<T> приводят к большому объему расходов на выделение во время восстановления. - #13146

  • Нерекомендуемый список NuGet.exe в пользу поиска NuGet.exe — #7912

  • [Поиск пакетов Dotnet] Необработанное исключение возникает при поиске с подробными сведениями о "--детализации" и "-format json" - #13300

  • dotnet package search аварийно завершает работу в .NET 9( предварительная версия 2 ночью) — #13286

  • Используйте StringBuilderPool вместо выделения нового StringBuilder - #13285

  • Передайте соответствующий размер списка<T> - #13284

  • JsonTextWriter выделяет большое число строк — #13283

  • Использование StringBuilder.Append() выделяется при добавлении int - 13282

  • Ненужный бокс перечислителей структур — #13281

  • Объекты обработки должны быть удалены, чтобы средство завершения не выполнялось — #13280

  • Избегайте перечисления бокса для коллекций — #13279

  • [.NET 9 Preview 3] восстановление no-op больше не является не op - #13269

  • Уменьшение выделения при вызове IVsProjectAdpater.IsCapabilityMatchAsync — #13268

  • Консолидация реализаций восстановления packages.config путем минимизации несоответствий — #13233

  • Отмена использования LINQ для обрезки некоторых выделений в AddMSBuildAssets — #13223

  • PackageSpecWriter вызывает Any в экземплярах ICollection<T>/IList<T> вместо . Count - #13213

  • StringBuilder.Append(int) вызывает ненужные выделения — #13207

  • Результаты кэширования задач могут привести ко всем продолжениям в одном потоке — #13206

  • LibraryDependency создает коллекцию, которая в основном пуста — #13184

  • PackageSpecWriter должен записывать исходную строку для версий вместо выделения новой версии — #13183

  • SetCentralDependencies вызывает OrderBy без указания сравнения по умолчанию для сравнения с учетом культуры — #13182

  • Результаты поиска в формате JSON из поиска пакетов dotnet не должны содержать поля, для которых не указаны значения — #13166

  • Результат поиска пакета должен быть "totalDownloads" вместо "total downloads" при выполнении команды dotnet package search <Name> -format json - #13165

  • [поиск пакета dotnet] ошибка загрузки серивного индекса должна быть ошибкой, а не предупреждением. - #13163

  • Формат поиска пакета dotnet показывает выходные данные справки в дополнение к json-файлу - #13161

  • Отмена восстановления на основе статического графа не завершает процесс восстановления — #13140

  • Используйте строку. Содержит вместо IEnumerable.Contains в синтаксическом анализе VersionRange — #13124

  • Восстановление статического графа не восстанавливает только решение packages.config — #13109

  • Восстановление NuGet всегда касалось файла project.assets.json, даже если он не нуждается в сообщениях об ошибках журнала. - #13098

  • Аудит во время восстановления не должен вызывать и завершаться сбоем операции — #13085

  • При восстановлении элемента с тем же ключом уже добавлена ошибка. - #13067

  • Прокрутка пользовательского интерфейса PM больше не загружает дополнительные пакеты. - #13063

  • Проверка кэша восстановления NuGet больше не использует кэш существования файлов — #13058

  • Добавление ссылки на esproj из проекта ASP.Net приводит к ошибке NU1105 - #12986

  • RemoteDependencyWalker выделяет много из-за того, что он называется рекурсивно - #12748

  • [Ошибка]: отмена восстановления msbuild медленна, если настроен недопустимый или недоступный источник — #11813

  • Восстановление: чрезмерное глубокое клонирование ProjectSpec — #9041

Список фиксаций в этом выпуске

Вклад сообщества

Спасибо всем участникам, которые помогли сделать этот выпуск NuGet потрясающим!

  • Эрарндт
    • 5659 Сокращение бокса при перечислении списков
    • 5662 Использование StringBuilder.AppendInt() в других местах для уменьшения выделения при добавлении целых чисел к StringBuilder
    • 5663 Удаление выделений из реализации TextWriter.NewLine
    • 5665 Use pooled StringBuilder
    • 5661 Избегайте бокса перечислителя в PackageSpecificWarningProperties.AddRangeOfCodes и TransitiveNoWarnUtils.AddToSeen
    • 5660 Убедитесь, что объекты процесса удаляются при запуске подключаемых модулей проверки подлинности
    • 5664 Указание размера списка в topologicalSortUtility.CalculateRelationships
    • 5624 Switch CreateNodeAsync к итеративному подходу
    • 5584 Unroll LINQ usage to trim some allocations in AddMSBuildAssets
    • 5574 Отмена регистрации нескольких вызовов LINQ
    • 5593 Дальнейшее сокращение выделений в CreateGraphNodeAsync
    • 5592 Избегайте нескольких перечислений при написании объектов Json
    • 5600 Избегайте выделения промежуточной строки, вызванной добавлением StringBuilder(i...
    • 5555 Unroll Linq in GetFlags
    • 5588 Избегайте бокса перечисления HashSet в IsBestVerion
    • 5589 Обновление реализации пула для использования стека с блокировкой, чтобы избежать al...
    • 5568 Change ResolvedDependencyKey to astruct
    • 5553 Избегайте некоторых выделений в GetCompatibilityData
    • 5554 Переключение из кортежа в ValueTuple для ключей словаря
    • 5552 Избегайте создания класса записи для вызовов WithExtension
    • 5556 Переключение из ConcurrentDictionary в словарь с блокировкой, чтобы избежать повторения...
    • 5551 Use string. Содержит вместо IEnumerable.Contains
    • 5550 Избегайте перечисления списка<T> бокса
  • GenelleM
    • 5655 Добавление 64-разрядного хэша шифрования algo для вычисления уникальности dgspec
    • 5629 Замена вызовов Any() в ICollection в PackageSpecWriter с номером > 0 проблемы #13213
    • 5619 Уменьшает использование времени ЦП в SetCentralDependencies
  • Никола Милошавльевич
  • брайанроб
    • 5650 Добавление инструментирования восстановления