Прочитать на английском

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


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

Заметки | о выпуске NuGet 1.7 NuGet 2.0

NuGet 1.8 выпущен 23 мая 2012 года.

Известная проблема с установкой

Если вы используете VS 2010 с пакетом обновления 1 (SP1), при попытке обновить NuGet при установке более старой версии может возникнуть ошибка.

Обходной путь — просто удалить NuGet, а затем установить его из коллекции расширений VS. Дополнительные сведения см https://support.microsoft.com/kb/2581019 . в исправлении VS.

Примечание. Если Visual Studio не позволит удалить расширение (кнопка "Удалить" отключена), скорее всего, потребуется перезапустить Visual Studio с помощью команды "Запуск от имени Администратор istrator".

NuGet 1.8 несовместим с Windows XP, опубликовано исправление

Вскоре после выпуска NuGet 1.8 мы узнали, что изменение шифрования в версии 1.8 сломало пользователей в Windows XP.

С тех пор мы выпустили исправление, которое устраняет эту проблему. Обновив NuGet через коллекцию расширений Visual Studio, вы получите это исправление.

Функции

Вспомогательные пакеты для локализованных ресурсов

NuGet 1.8 теперь поддерживает возможность создания отдельных пакетов для локализованных ресурсов, аналогичных возможностям вспомогательной сборки платформа .NET Framework. Вспомогательный пакет создается так же, как и любой другой пакет NuGet с добавлением нескольких соглашений:

  • Идентификатор вспомогательного пакета и имя файла должны содержать суффикс, соответствующий одной из стандартных строк языка и региональных параметров, используемых платформа .NET Framework.
  • В своем .nuspec файле вспомогательный пакет должен определить языковой элемент с той же строкой языка и региональных параметров, используемой в идентификаторе.
  • Вспомогательный пакет должен определить зависимость в файле .nuspec к основному пакету, который является просто пакетом с тем же идентификатором минус суффикс языка. Основной пакет должен быть доступен в репозитории для успешной установки.

Чтобы установить пакет с локализованными ресурсами, разработчик явно выбирает локализованный пакет из репозитория. В настоящее время коллекция NuGet не дает никакого специального лечения вспомогательным пакетам.

Package manager dialog with localized pacakges

Так как вспомогательный пакет содержит зависимость от его основного пакета, все вспомогательные и основные пакеты извлекаются в папку пакетов NuGet и устанавливаются.

Packages folder with localized packages

Кроме того, при установке вспомогательного пакета NuGet также распознает соглашение об именовании строк языка и региональных параметров, а затем копирует локализованную сборку ресурсов в правильную вложенную папку в основной пакет, чтобы она была выбрана платформа .NET Framework.

Core package folder with copied resource folder

Одна из существующих ошибок, которые следует отметить со вспомогательными пакетами, заключается в том, что NuGet не копирует локализованные ресурсы в папку bin для проектов веб-сайта. Эта проблема будет устранена в следующем выпуске NuGet.

Полный пример, демонстрирующий создание и использование вспомогательных пакетов, см. в разделе https://github.com/NuGet/SatellitePackageSample.

В NuGet 1.8 мы положили основу для поддержки важного ограничения на восстановление пакетов для защиты конфиденциальности пользователей. Это ограничение требует от разработчиков создания проектов и решений, использующих восстановление пакетов, чтобы явно предоставить согласие на загрузку пакетов из настроенных источников пакетов.

Существует 2 способа предоставления этого согласия. Первое можно найти в диалоговом окне конфигурации диспетчера пакетов, как показано ниже. Этот метод предназначен в первую очередь для компьютеров разработчиков.

Package manager configuration dialog

Второй метод — задать переменную среды EnableNuGetPackageRestore значение true. Этот метод предназначен для автоматических компьютеров, таких как CI или серверы сборки.

Теперь, как уже упоминалось выше, мы положили основу только для этой функции в NuGet 1.8. Практически это означает, что, хотя мы добавили всю логику для включения функции, она в настоящее время не применяется в этой версии. Она будет включена, однако, в следующем выпуске NuGet, поэтому мы хотели, чтобы вы узнали об этом как можно скорее, чтобы можно было настроить среды соответствующим образом и, следовательно, не быть затронутым при запуске ограничения согласия.

Дополнительные сведения см. в записи блога группы по этой функции.

улучшения производительности nuget.exe

Изменив команду установки для параллельного скачивания и установки пакетов, NuGet 1.8 обеспечивает резкое улучшение производительности nuget.exe и восстановление пакета расширения. Тестирование высокого уровня показывает, что производительность установки 6 пакетов в проект улучшается примерно на 35 % в NuGet 1.8. Увеличение числа пакетов до 25 показывает производительность около 60 %.

Исправления ошибок

NuGet 1.8 содержит довольно много исправлений ошибок с акцентом на консоль диспетчера пакетов и рабочий процесс восстановления пакетов, особенно в связи с согласием на восстановление пакетов и интеграцией Windows 8 Express. Полный список рабочих элементов, исправленных в NuGet 1.8, см. в разделе [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%201.8&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0).