Заметки о выпуске NuGet 2.0
Заметки | о выпуске NuGet 1.8 NuGet 2.1
NuGet 2.0 выпущен 19 июня 2012 года.
Если вы используете VS 2010 с пакетом обновления 1 (SP1), при попытке обновить NuGet при установке более старой версии может возникнуть ошибка.
Обходной путь — просто удалить NuGet, а затем установить его из коллекции расширений VS. Дополнительные сведения см https://support.microsoft.com/kb/2581019 . в исправлении VS.
Примечание. Если Visual Studio не позволит удалить расширение (кнопка "Удалить" отключена), скорее всего, потребуется перезапустить Visual Studio с помощью команды "Запуск от имени Администратор istrator".
Как описано в этой записи о согласии на восстановление пакета, NuGet 2.0 теперь требует предоставления согласия на включение восстановления пакетов для перехода в интернет и скачивания пакетов. Убедитесь, что вы предоставили согласие с помощью диалогового окна конфигурации диспетчера пакетов или переменной среды EnableNuGetPackageRestore.
Начиная с версии 2.0 зависимости пакетов могут отличаться в зависимости от профиля платформы целевого проекта. Это достигается с помощью обновленной .nuspec
схемы. Теперь <dependencies>
элемент может содержать набор <group>
элементов. Каждая группа содержит ноль или несколько <dependency>
элементов и targetFramework
атрибут. Все зависимости внутри группы устанавливаются вместе, если целевая платформа совместима с профилем целевой платформы проекта. Например:
<dependencies>
<group>
<dependency id="RouteMagic" version="1.1.0" />
</group>
<group targetFramework="net40">
<dependency id="jQuery" />
<dependency id="WebActivator" />
</group>
<group targetFramework="sl30">
</group>
</dependencies>
Обратите внимание, что группа может содержать нулевые зависимости. В приведенном выше примере, если пакет установлен в проект, предназначенный для Silverlight 3.0 или более поздней версии, никакие зависимости не будут установлены. Если пакет установлен в проект, предназначенный для .NET 4.0 или более поздней версии, будут установлены две зависимости jQuery и WebActivator. Если пакет установлен в проект, предназначенный для ранней версии этих 2 платформ или любой другой платформы, будет установлен RouteMagic 1.1.0. Между группами нет наследования. Если целевая платформа проекта соответствует targetFramework
атрибуту группы, будут установлены только зависимости в этой группе.
Пакет может указать зависимости пакета в любом из двух форматов: старый формат неструктурированного списка <dependency>
элементов или групп. <group>
Если используется формат, пакет нельзя установить в версии NuGet до версии 2.0.
Обратите внимание, что сочетание двух форматов не допускается. Например, следующий фрагмент кода недопустим и будет отклонен NuGet.
<dependencies>
<dependency id="jQuery" />
<dependency id="WebActivator" />
<group>
<dependency id="RouteMagic" version="1.1.0" />
</group>
</dependencies>
Помимо ссылок на сборки, файлы содержимого и скрипты PowerShell также можно сгруппировать по целевой платформе. Та же структура папок, найденная в lib
папке для указания целевой платформы, теперь может применяться так же, как и к content
tools
папкам. Например:
\content
\net11
\MyContent.txt
\net20
\MyContent20.txt
\net40
\sl40
\MySilverlightContent.html
\tools
\init.ps1
\net40
\install.ps1
\uninstall.ps1
\sl40
\install.ps1
\uninstall.ps1
Примечание. Так как init.ps1
выполняется на уровне решения и не зависит от отдельного проекта, он должен быть помещен непосредственно в папку tools
. Если он помещается в папку для конкретной платформы, он будет игнорироваться.
Кроме того, новая функция в NuGet 2.0 заключается в том, что папка платформы может быть пуста, в этом случае NuGet не будет добавлять ссылки на сборки, добавлять файлы содержимого или запускать скрипты PowerShell для конкретной версии платформы. В приведенном выше примере папка content\net40
пуста.
Функция завершения вкладки в консоли NuGet диспетчер пакетов была обновлена, чтобы значительно повысить производительность. С момента нажатия клавиши tab будет гораздо меньше задержки, пока не появится раскрывающийся список предложений.
NuGet 2.0 включает множество исправлений ошибок с акцентом на согласие на восстановление пакета и производительность.
Полный список рабочих элементов, исправленных в NuGet 2.0, см. в разделе [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0)
.