Подтвердить что ты не робот

Nuget spec зависимости, получить последнюю версию?

В nuspec версиях docs я вижу

1.0  = 1.0 ≤ x
(,1.0]  = x ≤ 1.0
(,1.0)  = x < 1.0
[1.0] = x == 1.0
(1.0) = invalid
(1.0,) = 1.0 < x
(1.0,2.0) = 1.0 < x < 2.0
[1.0,2.0] = 1.0 ≤ x ≤ 2.0
empty = latest version.

У меня есть packages.config, который выглядит как

<packages>
  <package id="psake" version="4.2.0.1" />
</packages>

и я хотел бы изменить версию на "latest".

Я пробовал оба

<packages>
  <package id="psake" version="" />
</packages>

и

<packages>
  <package id="psake" />
</packages>

но оба результата заключаются в Unable to parse version value '' from 'packages.config'.

Я использую Nuget.exe 2.8.2

4b9b3361

Ответ 1

Как и в случае с Nuget 2.8, вы можете добавить следующий атрибут в свой nuget.config

<configuration>
    <config> 
        <add key="dependencyversion" value="Highest" /> 
    </config>
</configuration>

При разрешении пакетов будет разрешена последняя версия этого пакета. Другие атрибуты включают HighestMinor, HighestPatch и самый низкий (на основе семантического управления версиями)

Источник: http://docs.nuget.org/docs/release-notes/nuget-2.8

Ответ 2

Я предполагаю, что вы пытаетесь использовать nuget install или nuget restore, чтобы вытащить пакет NuGet с помощью NuGet.exe.

Атрибут версии в package.config определяет версию, установленную в проекте или решении.

Чтобы получить последнюю версию пакета psake NuGet, вам необходимо установить его с помощью консоли диспетчера пакетов или диалогового окна "Управление пакетами" или, зная точную версию пакета, добавив это в файл packages.config и используя восстановление пакета. Так как psake - это пакет уровня решения, он не обновляет ваш проект, последний вариант возможен.

Диапазоны версий используются для ограничения версий пакетов, которые могут быть установлены в вашем проекте.

<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" />
</packages>

Ответ 3

В качестве альтернативы вы можете запустить restore на произвольной версии, а затем update в соответствии с https://docs.nuget.org/consume/command-line-reference. Чтобы обеспечить последнюю, вам потребуется повторно запустить update.

Обновите пакеты до последних доступных версий. Эта команда также обновляет сам NuGet.exe. Обратите внимание, что для запуска команды Update требуется наличие папки Packages. Рекомендуемым способом является запуск команды NuGet.exe Restore перед запуском команды Update.

Ответ 4

Вы можете изменить свой .cspoj файл, чтобы выполнить цель "BeforeBuild" следующим образом:

<Target Name="BeforeBuild"> <Exec Command="&quot;$(SolutionDir).nuget\NuGet&quot; update &quot;$(ProjectDir)packages.config&quot; -Id psake" /> </Target>

Обратите внимание: вам нужно будет иметь "Nuget.exe" в каталоге решений ur.