C # Рекурсивная зависимость не найдена - PullRequest
0 голосов
/ 02 сентября 2018

Я изучаю C # для проекта, и у меня возникли проблемы с зависимостями. По сути, вот как все устроено:

Сам проект, библиотека под названием (XMLupdater), зависит от пакета NuGet. Затем у меня есть другой проект, используемый для тестирования вышеуказанной библиотеки (которую я назвал XMLtester). Вот мое решение для тестового проекта с библиотекой, добавленной как зависимость в Visual Studio: ссылка bc Я не могу встраивать изображения

Насколько я могу судить, все в порядке, но я получаю сообщение об ошибке, в котором говорится, что не удается найти пакет NuGet. Это говорит это:

System.IO.FileNotFoundException: 'Could not load file or assembly 'XmlDiffPatch.Core, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.'

Я перепробовал все, что мог придумать, чтобы это исправить, но все сводится к тому, что у меня просто нет большого опыта работы с этим языком и идеями, и зависимости иногда могут быть очень странными. Я попросил пару других безрезультатно, поэтому я решил попросить мудрого совета у вас, ребята. Любая помощь?

Спасибо!

1 Ответ

0 голосов
/ 02 сентября 2018

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

Есть 2 способа исправить эту ситуацию:

  1. Получите точную версию сборки, показанную в ошибке, и добавьте ссылку на нее.
  2. Используйте bindingRedirect в вашем конфигурационном файле, чтобы сообщить компилятору, какую версию искать.

Для второго варианта вы можете добавить / обновить элемент <assemblyRedirect в файле конфигурации вашего исполняемого проекта.

<dependentAssembly>  
  <assemblyIdentity name="someAssembly"  
    publicKeyToken="32ab4ba45e0a69a1"  
    culture="en-us" />  
  <bindingRedirect oldVersion="1.0.0.0" newVersion="— add the actual version of the assembly referenced in your project —" />  
</dependentAssembly>  

Используйте атрибут newVersion, чтобы установить версию XmlDiffPatch.Core, на которую ссылается ваш проект.

Подробнее об этом можно прочитать здесь: https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions

...