Как проверить, работает ли пакет NuGet с более низкой версией его зависимости?
Скажем, я использую пакет NuGet, в моем проекте, который зависит от версии 1.2.3 xyz. Однако я хочу проверить, работает ли пакет NuGet с версией 1.1.1 xyz.
Я попытался сделать привязку сборки в App.config моего проекта таким образом, с версией 1.1.1, расположенной в том же каталоге, где была версия 1.2.3.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="x.y.z" publicKeyToken="xxxx" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.3 newVersion="1.1.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Тем не менее, я все еще получаю эту ошибку:
Could not load file or assembly 'x.y.z, Version=1.2.3, Culture=neutral,
PublicKeyToken=xxxx' or one of its dependencies.
The system cannot find the file specified.
Любые идеи, как я могу проверить, чтобы увидеть, работает ли пакет NuGet с более низкой версией DLL?
Спасибо
1 ответ
NuGet - это инструмент управления зависимостями. По умолчанию он будет загружать последнюю версию любой библиотеки, когда вы устанавливаете ее в свой проект. В вашем примере в вашем проекте установлена версия 1.2.3 xyz, что означает, что он не найдет версию 1.1.1, как вы тоже пытались указать.
Чтобы протестировать более старую версию, на первом шаге необходимо удалить текущую версию пакета из вашего проекта. Вам нужно перейти к консоли диспетчера пакетов и выполнить команду Uninstall-Package x.y.z
на вашем проекте.
После этого вам нужно будет установить конкретную версию xyz, с которой вы хотите протестировать. Для этого нужно запустить Install-Package x.y.z -Version 1.1.1
, После этого вы получите NuGet, получите версию пакета 1.1.1 и установите ее, и теперь вы сможете запускать свои тесты. Имейте в виду, что репозиторий NuGet должен иметь версию 1.1.1, в противном случае это приведет к ошибке. Обратитесь к странице проектов NuGet для версий, которые размещены и доступны.