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


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

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

NuGet 2.7.2 выпущен 11 ноября 2013 года.

Важные исправления ошибок и функции

Текст лицензии

В течение некоторого времени корпорация Майкрософт включила пакеты NuGet для нескольких популярных библиотек с открытым кодом в составе шаблонов по умолчанию для проектов веб-приложений в Visual Studio. jQuery, вероятно, является самым известным примером этой библиотеки. Из-за соглашения о поддержке, связанного с компонентами, которые поставляется вместе с продуктом, файл скрипта пакета содержит другой текст лицензии, чем файл скрипта, найденный в том же пакете в общедоступной коллекции nuget.org. Это различие в тексте может препятствовать обновлению пакетов в результате различных блоков текста лицензии, что приводит к тому, что файлы скриптов имеют разные хэш-значения содержимого (и поэтому следует рассматривать как измененные в проекте).

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

/************** NUGET: BEGIN LICENSE TEXT **************
    * The following code is licensed under the MIT license
    * Additional license information below is informational
    * only.
    ************** NUGET: END LICENSE TEXT ***************/

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

Этот блок определяется текстом NUGET: BEGIN LICENSE TEXT и NUGET: END LICENSE TEXT, происходящим в любом месте в начале и конце строк. Никакие другие требования к форматированию не существуют, позволяя использовать эту функцию в любом типе текстового файла независимо от языка.

Добавление перенаправлений привязки для сборок, отличных от платформы

Для сборок, входящих в платформа .NET Framework, NuGet пропускает добавление перенаправлений привязки в файл конфигурации приложения при обновлении пакета. Это исправление устраняет регрессию в NuGet 2.7, при котором перенаправления привязок не добавляются для некоторых сборок, даже если эти сборки не считаются частью платформа .NET Framework. NuGet 2.7.2 восстанавливает предыдущее поведение NuGet 2.5 и 2.6 и добавляет перенаправления привязки.

Установка переносимых библиотек с установленными средствами Xamarin

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

Параметры конфигурации на уровне компьютера учитываются

При использовании иерархических файлов Nuget.Config ключ репозитория Не учитывается для файлов Nuget.Config, ближайших к корневому каталогу решения. В Visual Studio 2013 NuGet устанавливает пользовательский файл Nuget.Config по адресу %ProgramData%\NuGet\Config\VisualStudio\12.0\Microsoft.VisualStudio.config, чтобы добавить источник пакета Microsoft и .NET. В результате для использования пользовательского репозиторияPath в решении было удаление конфигурации Nuget.Config на уровне компьютера, что также означало удаление источника пакета Microsoft и .NET. NuGet 2.7.2 теперь учитывает правила приоритета для репозиторияPath при использовании иерархических файлов Nuget.Config.

Все изменения

Полный список рабочих элементов, исправленных в NuGet 2.7.2, см. в разделе [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%202.7.2&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=Fixed).