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


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

Visual Studio 2017 15.3 RTW включает в себя NuGet 4.3 RTM, который добавляет поддержку новых сценариев, таких как .NET Standard 2.0/.NET Core 2.0, содержит множество исправлений, а также повышает производительность. Кроме того, этот выпуск привносит несколько усовершенствований, таких как поддержка семантического версионирования 2.0.0, интеграция ошибок и предупреждений NuGet в MSBuild и многое другое.

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

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

  • Исправление безопасности: разрешения на файлы, созданные внутри ~/.nuget, слишком открыты № 7673 CVE-2019-0757
  • Исправление безопасности: файлы внутри NUPKG могут иметь относительный путь выше каталога NUPKG № 7906

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

Восстановление NuGet может в некоторых случаях считать отключенные источники пакетов включенными.

Проблема

Следующие методы восстановления в командной строке обрабатывают отключенные источники пакетов как включенные. NuGet#5704

  • msbuild /t:restore
  • dotnet restore (с использованием файла dotnet.exe, поставляемого с VS или пакетом SDK для NetCore 2.0.0)

Обходное решение

  1. Используйте Visual Studio (2017 15.3 или более поздней версии) либо NuGet.exe (4.3.0 или более поздней версии)
  2. Удалите отключенный источник и продолжите использовать msbuild или dotnet.exe.
  3. Вы можете использовать для своего решения параметр Clear в NuGet.config, а затем задать необходимые для этого решения источники.

При использовании консоли диспетчера пакетов клавиша ВВОД может не работать

Проблема

Периодически клавиша ВВОД не работает в консоли диспетчера пакетов. В этом случае проверьте ход исправления и укажите дополнительные сведения для воспроизведения ошибки. NuGet#4204 NuGet#4570

Обходное решение

Перезапустите Visual Studio и откройте консоль управления пакетами перед тем, как открыть решение. Кроме того, попробуйте удалить файл project.lock.json и выполнить восстановление еще раз.

Вы не можете просмотреть, добавить или обновить DotNetCLITools с помощью диспетчера пакетов NuGet.

Проблема

Диспетчер пакетов NuGet не отображается и не позволяет добавить или обновить DotNetCLITools. NuGet#4256

Обходное решение

DotNetCLIToolReferences нужно изменить вручную в файле проекта.

Изменение требуемой версии .NET Framework может привести к частичному отсутствию данных функции IntelliSense

Проблема

Если изменить требуемую версию .NET Framework в Visual Studio, вы можете получить неполные данные функции IntelliSense. Это происходит, если использовать PackageReferences в качестве формата диспетчера пакетов. NuGet#4216

Обходное решение

Выполните восстановление вручную.

Проблемы, исправленные в рамках NuGet 4.3 RTM

Проблемы, исправленные в NuGet 4.0 RTM, описаны в разделе Заметки о выпуске NuGet 4.0 RTM

Функции

  • Улучшение производительности восстановления NuGet: реализация оптимизированного NoOp для восстановлений из командной строки и VS — #5080

  • NET Core 2.0: интерфейс командной строки VS/Dotnet должен запускаться с использованием имеющейся функциональности NuGet: резервные папки — #4939

  • NET Core 2.0: разрешение пользователям пропускать определенные предупреждения о восстановлении (или повышать их до ошибки) — #4898

  • NET Core 2.0: локализованные сборки в интерфейсе командной строки — #4896

  • NET Core 2.0: регистрация всех предупреждений/ошибок в файле ресурсов (включая PackageTargetFallback) — #4895

  • Включение поддержки TFM: NetStandard2.0, Tizen — #4892

  • Уменьшение числа проектов NuGet.Core и NuGet.Client (а, соответственно, и библиотек DLL) — #2446

  • Добавление возможности помечать предупреждения и ошибки NuGet — #2395

Ошибки

  • msbuild /t:pack завершается с ошибкой "Параметр "DevelopmentDependency" не поддерживается задачей "PackTask"" — #5584

  • Структура каталогов для файлов содержимого становится плоской, если не добавлять разделитель каталогов Windows в конце PackagePath — #4795

  • Проекты NetCore не поддерживают настройку в качестве developmentDependency — #4694

  • RestoreManagerPackage загружается синхронно, что привело к блокировке потока пользовательского интерфейса и взаимоблокировке VS — #4679

  • dotnet

    • Команда dotnetcore Restore (и, соответственно, msbuild /t:restore) пропускает проекты с явной зависимостью от проекта решения — #4578
  • Если решение имеет ссылки, указывающие на один и тот же проект, написанный с разным регистром, восстановление может не работать. Это также влияет на различные относительные пути без различий в регистре — #4574

  • Исполняемые файлы, восстановленные из пакетов NuGet, больше невозможно выполнить с помощью .NET Core 2.0 — #4424

  • NuGet.exe поглощает сведения об исключении при синтаксическом анализе файла решения — #4411

  • Пакет помещает файлы содержимого в неправильное расположение, если ContentTargetFolders содержит пути, заканчивающиеся на "/" в Windows — #4407

  • Не удается восстановить DotNetCliToolReference для пакета инструментов, ориентированного на netcoreapp1.1 — #4396

  • Интерфейс командной строки обновления NuGet оставляет старое условие версии пакета в файле проекта (C++) — #2449

Запросы на изменение структуры

  • Read DotnetCliToolTargetFramework из номинации CPS — #5397

  • Проверка TPMinV должна работать для UWP в стиле pj — #4763

  • Улучшение описания пользовательского интерфейса для пакетов с автоссылками — #4471

  • Функция восстановления NuGet выбирает ресурсы компиляции из раздела времени выполнения. - #4207

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

Список проблем