проблема зависимости от log4net

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

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

Unknown build error, 'Cannot resolve dependency to assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.' 

Я знаю, что сообщение об ошибке, вероятно, говорит мне решение, к сожалению, я не говорю мусора...

Парни аплодисментов

Alex..

14
задан Fergal Moran 13 April 2010 в 13:44
поделиться

2 ответа

Вот ссылка, которая описывает, что происходит и как это исправить:

http://blogs.msdn.com/jmstall/archive/ 2006/11/22 / Reflection-type-load-exception.aspx

Выдержка из приведенной выше ссылки:

Итак, произошло то, что он пытался получить System.Type для Bar, но для определения типа, необходимого для загрузки базового класса , который находится в другой dll. Контекст только для отражения не выполняет политику привязки , поэтому он не могу найти эту dll. Подсказка LoaderException говорит использовать ReflectionOnlyAssemblyResolve, который предоставляет дополнительную информацию об этом.

Чтобы использовать API отражения, вы должны разрешить все используемые зависимости.

10
ответ дан 1 December 2019 в 13:58
поделиться

У меня была такая же проблема. Я все еще не до конца понимаю ее, но могу рассказать, как я решил свою проблему. У меня был проект юнит-теста B со ссылкой на проект A, который ссылается на log4net. Так что для меня эта тарабарщина означает, что когда Visual Studio пытается создать файл .accessor для проекта unit test, он обращается к проекту A. Это означает, что он пытается загрузить ссылки проекта A, но загрузчик сборок не может их найти, потому что у меня нет log4net в GAC, только локально для проекта A, чтобы ссылаться на него. В моем случае, добавление log4net в DEVPATH (GAC тоже подойдет) было решением.

1
ответ дан 1 December 2019 в 13:58
поделиться