Как я могу сохранить Nuget от обновления зависимостей?

Я пытаюсь установить пакет nuget, в котором неправильно указана одна из его зависимостей. Common.Logging.Log4Net требует log4net = 1.2.10, однако пакет nuget указывает log4net >= 1.2.10. Даже если я вручную установлю старую версию log4net, при установке Common.Logging.Log4Net nuget обновит log4net до версии 1.2.11. Как я могу заставить nuget обходить разрешение зависимостей или хотя бы отдавать предпочтение установленным пакетам достаточной версии?

1 ответ

Решение

Чтобы обойти разрешение зависимости, вы можете использовать -IgnoreDependencies опция:

Install-Package -IgnoreDependencies ThePackageName

У вас должна быть возможность заблокировать пакет для определенной версии, отредактировав вручную файл packages.config и установив атрибут allowVersions, чтобы указать диапазон версий, который вы хотите разрешить.

<package id="Common.Logging.Log4Net" version="1.2.10" 
     allowedVersions="[1.2,1.2.10]" />

Обратите внимание, что он, однако, не будет обновлять версию пакета вообще, даже при явном обновлении пакета.

См. Документацию по версиям Nuget для получения дополнительной информации о версиях.

Другие вопросы по тегам