nuspec зависимость позволила версии?
У меня есть файл nuspec, который создает пакет nuget. Я хотел бы контролировать зависимости, где я разрешаю диапазон версий, но что всегда установить специальную версию.
В основном это (неверный синтаксис):<dependency id="Microsoft.CrmSdk.CoreAssemblies" version="8.2.0.2" allowedVersions="6.0.0" />
Я хочу, чтобы nuget для зависимости принимал 6 или выше (до 9), но всегда хочу, чтобы он установил 8.2.0.2 по умолчанию.
Если бы у меня была версия ="6.0.0", она всегда установила бы 6 версию?
Какие-нибудь советы?
1 ответ
Можно указать допустимый диапазон версий в nuspec-файле с синтаксисом диапазона версий. Принятие каждой версии с основной версией от 6 до (включая) 9 будет определяться [6.0.0, 10.0.0)
,
Из вашего вопроса я понимаю, что вы хотите указать допустимый диапазон версий, но хотите принудительно установить определенную версию. Я не знаю, как этого добиться, но я также не вижу требования к нему: указав допустимый диапазон версий, nuspec-файл указывает, с какими версиями пакетов зависимостей этот пакет совместим. Следовательно, все принятые версии должны работать.
Принудительная установка определенной версии, на мой взгляд, противоречит этому утверждению о совместимости. Это звучит так, как будто вы хотите достичь другой цели: убедиться, что в приложении установлена согласованная версия пакета NuGet. Это, однако, должно быть решено на стороне потребителя, то есть на решении, устанавливающем пакеты NuGet. Предположим, что nuspec-файл определяет пакет A, который принимает все версии [6.0.0, 10.0.0)
от Microsoft.CrmSdk.CoreAssemblies
, но потребляющее решение всегда должно использовать версию 8.2.0.2
, Тогда эта версия 8.2.0.2
сначала следует установить его, а затем установить текущую версию пакета A, найдя его зависимость от Microsoft.CrmSdk.CoreAssemblies
уже решен.
Для достижения согласованного потребляющего решения мы реализуем проверки на сервере CI, которые проверяют, что на каждый пакет ссылаются во всех проектах ровно в одной версии. Таким образом мы получаем согласованный продукт, сохраняя гибкость фактических пакетов NuGet для использования с другой версией пакетов зависимостей в других продуктах.