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


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

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

Версия NuGet Доступно в версии Visual Studio Доступно в пакетах SDK для .NET
7.0.0 Visual Studio 2026 версии 18.0.0 10.0.1001
7.0.1 Visual Studio 2026 версии 18.1.0

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

Сводка: Что нового в 7.0.1

Проблемы, исправленные в этом выпуске

  • Исправлена ошибка NU1011, возникавшая при использовании централизованного управления пакетами с плавающими версиями, разрешенными #14637

Список коммитов в этом выпуске

Сводка: новые возможности версии 7.0.0

  • Проекты, нацеленные на .NET 10, по умолчанию предупреждают об уязвимостях в транзитивных пакетах, устанавливая NuGetAuditMode=all #14161

  • Очистка пакетов включена для всех проектов, предназначенных для .NET 10 #14345

  • Создан сервер протокола контекста модели NuGet (MCP), поддерживаемый .NET SDK версии 10 или более поздней. MCP NuGet предварительно установлен в Visual Studio 2026 и его можно установить в VS 17.14 и VS Code. Сервер публикуется в nuget.org как пакет NuGet.Mcp.Server .

  • Позволяет упаковывать устаревшие проекты PackageReference без необходимости использования пакета — #14046

  • Не рекомендуется использовать SHA-1 в .NET 10 — #13814

  • Область сведений отражает данные об уязвимостях из источников аудита — #14554

  • Поддержка NuGet AuditSources в пользовательском интерфейсе диспетчера пакетов — #13954

  • Перенос параметров NuGet в новое окно параметров Visual Studio

    • Перенос параметров "Источники пакетов" в параметрах Visual Studio — #14233

    • Перенос параметров "Сопоставление источников пакетов" в параметрах Visual Studio — 14234

  • пакет обновления dotnet --уязвимый (исправление аудита) - #13372

Кардинальные изменения

  • Добавление проверки идентификатора пакета во время восстановления — #14407

  • Project.json больше не поддерживается в версии 7.0. Visual Studio 2026 автоматически переносил проекты project.json в PackageReference

  • Очистка пакетов приведет к однократной разнице в файле блокировки пакетов - #14272

  • Обрезка делает прямые ссылки приватными, применяя PrivateAssets=all и IncludeAssets=none - #14196

  • Вызывать ошибку при использовании отпечатков пальцев SHA-1 в командах подписи NuGet.exe и mssign — #13962

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

Изменения, нарушающие совместимость в пакете SDK

  • Project.json устаревание

    • Удаление пакета project.json — #7931

    • Удаление поддержки project.json — #7199

    • Удаление PackageSpec.Dependencies — #14446

    • Очистить избыточные API-интерфейсы спецификации пакетов — #6231

  • Неиспользуемые API расширения NuGet VS удалены — #14403

  • Удалите все неиспользуемые API, помеченные как устаревшие в NuGet.Frameworks, NuGet.Protocol, NuGet.Commands и NuGet.PackageManagement - #14395

  • Удаление устаревших API из NuGet.Common, NuGet.Configuration, NuGet.LibraryModel, NuGet.Packaging и NuGet.ProjectModel — #14393

  • Блокировать и удалять код для неиспользуемых реализаций восстановления, таких как Standalone. - #14184

  • Удалить/восстановить — DotnetToolReference

Проблемы, исправленные в этом выпуске

Исправления пакета SDK NuGet

  • Не используйте десериализацию на основе отражения в NuGet.Protocol — #14470

  • JsonSerializerIsReflectionDisabled при обновлении до Nuget.Protocols 6.13.1 в приложениях, где JsonSerializerIsReflectionEnabledByDefault установлен в false - #14111

.NET CLI (интерфейс командной строки)

  • Включение CanShowDialog для подключаемых модулей проверки подлинности .NET Core — #14010

  • "Dotnet package update" изменяет неправильный файл проекта (csproj) - #14585

  • Dotnet nuget проверяет, должен ли выводить хэш содержимого пакета — #14384

  • Обновление пакета dotnet должно поддерживать --verbosity - #14319

  • Обновление пакета dotnet должно поддерживать CPM и VersionOverride — #14318

  • Обновление пакета dotnet должно поддерживать несколько пакетов — #14308

  • Обновление пакета dotnet должно поддерживать сопоставление источников пакетов — #14307

  • Обновление пакета dotnet до определенной версии — #14306

  • Начальная версия обновления пакета dotnet — #14305

  • [Bug Bash][Нестабильная версия] Ошибка "Попытка разделить на ноль". возникает при выполнении команды "dotnet list [ProjectPath] package --vulnerable" - #14122

  • [Функция]: пакет dotnet list [project | solution] не работает с фильтрами решений - #11789

Пользовательский интерфейс диспетчера пакетов в Visual Studio

  • Преобразование элемента управления поиска в пользовательский интерфейс Fluent — #14469

  • Используйте Fluent TextBox для версии пользовательского интерфейса Project PM — #14466

  • [Bug Bash] В раскрывающемся списке версии в пользовательском интерфейсе PM есть небольшой разрыв — #11990

  • [Ошибка Bash] Раскрывающийся список пользовательского интерфейса PM не различает цвет фона между выбранным элементом и элементом наведения указателя мыши — #10977

  • [Ошибка Bash] При нажатии кнопки вниз страницы на клавиатуре при фокусе на раскрывающемся списке "Версия" с помощью клавиши TAB поле пусто — #13605

  • Мертвый код: представление "ActionsAndVersions" — #14464

Параметры Visual Studio

  • Вывод из эксплуатации настроек VS Options NuGet — #14398

  • При добавлении источника HTTP в диалоговом окне параметров установите флажок, чтобы явно согласиться с добавлением AllowInsecureConnections — #14377

  • Необходимое исправление в настройках источников пакетов для HTTP-источника без AllowInsecureConnections — #14367

  • Улучшение проверки параметров NuGet в параметрах Visual Studio — #14359

  • Отображение ошибок проверки на страницах параметров NuGet во время ввода — #14358

  • [Ошибка Bash] [Нестабильное] Первое удаление сопоставления источников из списка "Сопоставления источников пакетов" в диалоговом окне "Сопоставление источников пакетов" не работает - #13520

  • [Локализация] Заголовок таблицы "Сопоставление источника пакетов" на странице "Параметры-диспетчер пакетов NuGet-Сопоставление источника пакетов" не локализован - >

  • [Ошибка Bash] Автономный источник пакета не может быть включен после отключения его из списка источников пакетов на уровне компьютера ранее в окне "Параметры ->Диспетчер пакетов NuGet-Источники> пакетов" - #13434

  • [Ошибка Bash] Столбец "Источник" в диалоговом окне "Добавление сопоставления источника пакета" не имеет заданной минимальной ширины, что позволяет перетащить его за пределы видимости - #13355

  • [Ошибка Bash] Первое повторное открытие диалогового окна "Параметры" должно вернуть источник пакета по умолчанию "Автономные пакеты Microsoft Visual Studio" в списке "Источники пакетов", когда все источники были удалены ранее - #13278

  • [Ошибка Bash] В окне "Option-NuGet Package Manager-Package Source Mapping" (Сопоставление источников пакетов) только что добавленное сопоставление источников пакетов не должно учитывать регистр. >

  • [Ошибка Bash] Новое сопоставление источника пакета будет потеряно после переключения на вкладку "Сопоставление источников пакетов" с другой вкладки в окне ">Диспетчер пакетов NuGet" - #13150

  • [Ошибка Bash] Кнопка "Удалить" должна быть отключена, если сопоставление источников пакетов не выбрано в списке "Сопоставления источников пакетов" - #13115

  • [CSY] Повторяющиеся горячие ключи отображаются в диалоговом окне "Параметры ->Диспетчер пакетов NuGet-Источники> пакетов" - #7822

  • VS NuGet PMUI — область источников пакетов на уровне компьютера должна иметь возможность изменять размер по вертикали — #7560

  • [Ошибка Bash] При изменении имени источника "Автономные пакеты Microsoft Visual Studio" будет дублированный источник пакета - #13057

  • [Bug Bash] Страница "Параметры->Диспетчер пакетов NuGet->Источники пакетов" становится недоступной после установки или снятия флажка "Включено" для любого источника пакета с дублирующимися источниками - #14499

  • Необходимо вручную выбрать предварительно заполненный текст в диалоговом окне "Добавление источника пакета" - #14450

  • Vs не должен удалять атрибуты источника пакета при обновлении имени — #14370

Очистка пакетов

  • Развертывание предупреждений для PrunePackageReference — #14126

  • Отсутствие предупреждений аудита при выполнении команды "nuget install", если nuget.org не является источником пакетов - #14096

  • Невозможно отправить в источники HTTP, указанные с помощью командной строки - #14047

  • Очистка пакетов включена для всех проектов, предназначенных для .NET 10, включая многоцеловые — #14345

  • Перемещение платформ с поддержкой обрезки в nuGet.targets — #14424

  • Измените _RestorePackagePruningDefault на RestorePackagePruningDefault - #14511

Restore

  • dotnet restore/Visual Studio конфликтует с .esproj + Nx project.json - #13512

  • Улучшить NU1004 при использовании обрезки в заблокированном режиме — #14075

  • Рекомендуется не писать NuGetToolVersion для созданных файлов props MSBuild при восстановлении — #14355

  • Восстановление NuGet завершается ошибкой, если установлен SQL Server Management Studio 21 — #14349

  • Удалить NUGET_EXPERIMENTAL_USE_NJ_FOR_FILE_PARSING - #14257

  • Удалите RestoreTargetGraph.Name, так как оно избыточно по сравнению с restoreTargetGraph.TargetGraphName, которая является широко используемой версией - #14529

  • Удалите RestoreArgs.LockFileVersion, так как она не используется — #14524

  • Удаление резервных копий NUGET_BULK_RESTORE_COORDINATION и NUGET_SOLUTION_CACHE_INITIALIZATION — #14502

Решатель зависимостей

  • Новый сопоставитель зависимостей неправильно обрабатывает версии с плавающей предварительной версией — #13833

  • Повторное разрешение нового алгоритма с файлами блокировки — #13800

Other

  • Остановка пакета ilmerging - #13079

  • Сделать Build.ps1 NuGet.Client более понятным для GitHub Copilot в VSCode - #14453

  • Генерировать идентичные файлы [Content_Types].xml при повторных сборках — #14357

  • pack legacy csproj: включить цели и задачи пакета в инструменты сборки VS — #14520

  • Vs аварийно завершает работу, когда единственным проектом в решении является проект project.json - #14553

  • Проверка обработки исключений — #14440

  • Улучшение производительности путем предотвращения избыточных обращений к словарю — #14432

  • LockFileLibrary не нужно делать изменяемой — #14385

Список коммитов в этом выпуске

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

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

  • SimonCropp
    • 6720 удаляет избыточные конструкторы по умолчанию
    • 6610 добавляет "не имеет минимальной версии" в сообщения в GetNupkgInfo
    • 6581 удалить избыточные поиски в словаре в MarkTransitiveOrigin
    • 6596 включает значение NULL в PackageItemViewModelTests
    • 6634 удалить IFrameworkTargetable
    • 6616 избегайте избыточного синтаксического анализа версий в PluginFindPackageByIdResource
    • 6595 включает значение NULL в ReadmePreviewViewModelTests
    • 6587 удаляет поиск избыточного словаря в ProcessUnrankedEntries
    • 6598 включает значение NULL в EmbeddedResourcesCapabilityTests
    • 6577 использует поля вместо частных свойств
    • 6622 удаление неиспользованного списка в GetPackagesToBeReinstalled
    • 6589 избыточная проверка на null для значения, возвращаемого projectManagerService.GetMetadataAsync
    • 6605 включает поддержку Nullable в VSRestoreSettingsUtilityTests
    • 6575 удаляет поиск избыточного словаря в CredentialServiceAdapter.GetCredentials
    • 6601 включает nullabe в NuGetInstallCommandTest
    • 6593 включает значение NULL в IProjectContextInfoExtensionsTests
    • 6614 удаляет избыточные списки в DependencyGraphFileRequestProvider
    • 6625 удаляет неиспользоваемые переменные в PackageExtractor
    • 6609 исправление обнуляемости в неразрешенныхСообщениях
    • 6608 удалить неиспользоваемый контекстForGather
    • 6628 удаляет избыточное перечисление в CredentialsItem
    • 6617 удалить экземпляр списка toolItems в MSBuildRestoreUtility
    • 6599 исправление допустимости параметров null в Constructor_SetReportAbuseUrl_Initialize...
    • 6604 включает значение NULL в LegacyPackageReferenceProjectTests
    • 6631 удалить DependencyGraphSpecRequestProvider.CollectReferences
    • 6635 remove EnvDteProjectExtensions.PathComparer
    • 6623 удаление избыточных вызовов GetManifestResourceNames в ManifestSchemaUtility
    • 6619 удаляет неиспользуемую переменную packageID
    • 6620 удаляет неиспользоваемые переменные в PackageManagerControl
    • 6640 удаление избыточной обработки исключений
    • 6637 remove PackageManagerControl.AddMigratorBar
    • 6629 удаление неиспользоваемого экземпляра HashSet в ResolverMetadataClient
    • 6602 включает поддержку nullable в MSBuildUtilityTest
    • 6641 удаляет избыточное условие NULL в UpdateCommand.ExecuteCommandAsync
    • 6683 удаляет избыточное выделение памяти для строк в GetTempFilePath
    • 6626 удаляет неиспользоваемые переменные в SignedPackageArchiveIOUtility
    • 6574 удаляет поиск избыточного словаря в CreatePackageSourceMappingDictionary
    • 6594 включает значение NULL в InfiniteScrollListTests
    • 6682 Используйте асинхронную задержку в SafeReadAsync
    • 6600 включить поддержку nullable в NuGetUpdateCommandTests
    • 6606 включает значение NULL в VSNominationUtilitiesTests
    • 6613 удаляет переменную избыточного типа в GetExternalProject
    • 6611 удаление неиспользоваемых экземпляров решенияService
    • 6643 remove MsBuildUtility.GetMsBuildPathInPathVar
    • 6632 удалить PackageSpecFactory.GetTargetFrameworkStrings
    • 6573 избежать некоторого выделения памяти при обработке ProjectFactory.ProcessDependencies
    • 6588 удалите поиск по словарю из GetPreviewResultsAsync
    • 6597 исправляет значение NULL в PackageModelCreationTestHelper
    • 6612 удаление неиспользуемых экземпляров списка в NuGetPackageManager
    • 6591 включает значение NULL в PackageSourceValidatorTests
    • 6603 исправляет значение NULL в IVsProjectBuildProperties
    • 6636 удаление полей _project* из PackageReferenceProject
    • 6630 удалить неиспользуемый экземпляр идентификации в LocalV3FindPackageByIdResource
    • 6618 удали экземпляр LoggerAdapter в NuGetPackageManager
    • 6621 удаляет неиспользоваемые проектыByUniqueName в SolutionUpToDateChecker
    • 6624 удаляет неиспользоваемые переменные в PackageBuilder
    • 6633 удаляет разделители DelimitedStringSeparators и VersionSeparators в JsonPackageSpecReader
    • 6642 использовать приведение вместо as и проверки на null в CommandLineParser.AssignValue
    • 6615 удаляет избыточный список в GetPluginAsync
    • 6627 удаляет неиспользованный GetDirectoryName в MisplacedAssemblyOutsideLibRule
    • 6578 устраняет избыточный поиск в словаре в PrunePackageTree.PruneDowngrades
    • 6576 удаляет поиск избыточного словаря в RecommenderPackageFeed
  • baronfel
    • 6554 Исправление потока кода NuGet-SDK>
    • 6514 Закрепите и стабилизируйте NuGetToolVersion свойство в созданных файлах свойств NuGet во время восстановления.
  • omajid
    • 6500 Обеспечение стабильного порядка записей в Content_Types.xml
    • Поддержка сборки 6507 на Linux, когда полная подпись недоступна
  • АлексDelepine
    • 6793 Обновление приоритетов Ngen для VS
  • Хикфорд
    • 6475 Постоянно заполнять источники аудита
  • nohwnd
    • 6735 Отключение профиля загрузки в вызовах служебной программы powershell.exe
  • mmitche
    • 6539 Переместить NuGet в xliff-tasks
  • dkurepa
    • 6644 Добавление Version.Details.props
  • bdukes
    • 6530 Восстановление поиска MSBuild из SSMS вместо Visual Studio
  • TodGrun
    • 6519 Сделать LockFileLibrary неизменяемым по соображениям производительности и разумности