Вышла очередная версия NuGet – отличного менеджера библиотек. Давайте посмотрим что в ней нового.
Как получить новую версию
Для загрузки дополнения к Visual Studio достаточно воспользоваться разделом Updates в Extension Manager. Кроме того, разработчикам, которые создают установочные пакеты, потребуется обновление утилиты NuGet.exe. Для этого в командной строке необходимо выполнить команду: nuget.exe u –self.
Шаблоны проектов с включёнными в них установочными пакетами.
Если создать ASP.NET MVC 3 проект, то в него уже будет включён ряд установочных пактов NuGet. Теперь такая возможность есть у любых шаблонов. Подробности её реализации можно прочитать в блоге Marcin On ASP.NET в заметке "Project Templates and preinstalled NuGet packages".
Явные ссылки на сборки
Используя новую секцию <references /> можно явно указать, какие сборки необходимо добавить в References при установке пакета. Например:
<references>
<reference file="mylib.dll" />
<reference file="mylib.extensions.dll" />
</references>
В этом случае будут подключены только mylib.dll и mylib.extensions.dll, расположенные в папке, соответствующей заданной в проекте версии .NET. Остальные dll-файлы будут проигнорированы (однако это не отменяет их включение в сам установочный пакет).
При отсутствии секции <references /> включаются все сборки (как и было в прошлых версиях).
Задачи, решаемые с помощью <references />
Рассматриваемая возможность необходима при наличии design-time сборок. Например, dll-файлы Code Contracts должны быть расположены вместе с библиотекой. Но при этом нет необходимости включать их в проект или копировать в папку bin. Такое решение также может потребоваться при использовании библиотек модульных тестов.
Изменения в секции <files>
Пустая секция
Теперь можно, при необходимости, задать пустую секцию <files />. В этом случае NuGet не будет включать какие-либо файлы в установочный пакет.
Возможность указать файлы, исключаемые при создании установочного пакета
В прошлых версиях NuGet в секции <files>, используя шаблоны (wildcards), можно определить какие группы файлов будут включены в установочный пакет. Но что делать, если надо добавить, например, все .txt файлы кроме admin.txt? Раньше приходилось только перечислять их по одному.
В новой версии можно использовать атрибут exclude для указания таких файлов. Например:
<files>
<file src="*.txt" target="content\docs" exclude="admin.txt" />
</files>
Диалог удаления зависимых установочных пакетов
Теперь, при удалении установочного пакета, NuGet просит с помощью диалога подтвердить удаление пакетов, от которых он зависел.
Улучшения команды Get-Package
Команда Get-Package поддерживает новый параметр: -ProjectName. Например следующий пример выведет список всех установочных пакетов, подключенных в проект Demo:
Get-Package –ProjectName Demo
Поддержка прокси-серверов, которые требуют аутентификации
Новую версию NuGet могут использовать разработчики, компьютеры которых расположены за прокси-сервером требую��им аутентификацию. При подключении к удаленному репозиторию будет выведен диалог для ввода имени и пароля.
Поддержка репозиториев, которые требуют аутентификации
Аналогично описанному выше, будет выведен диалог, если репозиторий требует аутентификацию.
Улучшения диалога Manage NuGet Packages
Фильтрация проектов в диалоге добавления установочного пакета
В диалоге добавления установочных пакетов на уровне всего решения, отображаются только проекты, которые совместимы с выбранным пакетом.
Комментарии (release notes) для текущий версии библиотеки
Используя новую секцию <releaseNotes /> можно добавлять текст, который будет виден в диалоге добавления установочного пакета. Стоит отметить, что комментарии выводятся только в разделе Updates.
Увеличена производительность репозитория NuGet.org
Теперь поиск установочных пакетов и вывод их списка происходят быстрее.
Исправления ошибок
В общей сложности было исправлено 103 ошибки. Полный список: NuGet Issue Tracker for this release.