Доступен NuGet 2.0

Вышла новая версия NuGet – удобного и мощного инструмента для управления библиотеками в проекте.

Что нового?

Изменения в NuGet 2.0 расширяют возможности разработчиков при создании установочных пакетов.

Группировка зависимостей по целевым платформам

Появилась возможность устанавливать дополнительные библиотеки исходя из платформы проекта. Для этого в .nuspec файле внутри тега <dependencies> можно указать несколько <group>. Например:

<dependencies> 
   <group>
      <dependency id="RouteMagic" version="1.1.0" />
   </group>

   <group targetFramework="net45">
      <dependency id="Microsoft.AspNet.Mvc" version="4.0.20505.0" />
   </group>

   <group targetFramework="net40">
   </group>
</dependencies>

Важный момент: зависимости не наследуются. То есть для каждой платформы будут установлены только те библиотеки, что были указаны именно для нее в конфигурации. Если не одна из групп не соответствует выбранной в текущем проекте платформе, то будет использована <group> без указания параметров.

Таким образом, в приведенном примере в проект будут добавлены:

  • для .NET 4.5 – только Microsoft.AspNet.Mvc;
  • для .NET 4 – ничего;
  • для всех остальных платформ (включая более старые версии .NET) – RouteMagic.

По прежнему поддерживается вариант указания <dependencies> без <group>. Однако смешение двух стилей описания зависимостей в одном конфигурационном файле запрещено.

Группировка скриптов и дополнительных файлов по целевым платформам

Появилась возможность указывать целевые платформы и для дополнительных файлов. Для этого в папках content и tools необходимо создать папки с указанием версий. Раньше такое было доступно только для размещения сборок в lib.

  • \content
    • \net11
      • ReadMe.txt
    • \net20
      • ReadMe.txt
    • \net40
    • \sl40
      • ReadMe.txt
  • \tools
    • init.ps1
    • \net40
      • install.ps1
      • uninstall.ps1
    • \sl40
      • install.ps1
      • uninstall.ps1

Обратите внимание, что скрипт init.ps1 будет выполнен при установке в любой проект, а остальные – в зависимости от его платформы. Кроме того, для .NET 4.0 отсутствует файл ReadMe.txt. NuGet позволяет оставлять папки пустыми и никаких действий в этом случае выполнено не будет.

Увеличена скорость работы подсказки для вводимых команд

Теперь вывод подсказки для завершения вводимой команды по нажатию [Tab] происходит быстрее.

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

С выходом версии 2.0 было устранено 76 ошибок. Их полный список доступен в NuGet Issue Tracker.

Как загрузить новую версию?

Установить или обновить NuGet можно с помощью диалога Extension Manager в Visual Studio или загрузив его со страницы VS Extension Gallery.

Утилита для командной строки доступна со страницы проекта на CodePlex. Если же nuget.exe уже был скопирован на компьютер разработчика, то обновить его можно следующим вызовом:

nuget.exe update –self

При использовании Visual Studio 2010 Service Pack 1 возможна ошибка, из-за которой обновление не может быть завершено. В этом случае необходимо переустановить NuGet (потребуется запустить Visual Studio с правами администратора).

Добавить комментарий