Заметки о выпуске 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)
Обходное решение
- Используйте Visual Studio (2017 15.3 или более поздней версии) либо NuGet.exe (4.3.0 или более поздней версии)
- Удалите отключенный источник и продолжите использовать msbuild или dotnet.exe.
- Вы можете использовать для своего решения параметр 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