У меня есть проблема с 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..
Вот ссылка, которая описывает, что происходит и как это исправить:
http://blogs.msdn.com/jmstall/archive/ 2006/11/22 / Reflection-type-load-exception.aspx
Выдержка из приведенной выше ссылки:
Итак, произошло то, что он пытался получить System.Type для Bar, но для определения типа, необходимого для загрузки базового класса , который находится в другой dll. Контекст только для отражения не выполняет политику привязки , поэтому он не могу найти эту dll. Подсказка LoaderException говорит использовать ReflectionOnlyAssemblyResolve, который предоставляет дополнительную информацию об этом.
Чтобы использовать API отражения, вы должны разрешить все используемые зависимости.
У меня была такая же проблема. Я все еще не до конца понимаю ее, но могу рассказать, как я решил свою проблему. У меня был проект юнит-теста B со ссылкой на проект A, который ссылается на log4net. Так что для меня эта тарабарщина означает, что когда Visual Studio пытается создать файл .accessor для проекта unit test, он обращается к проекту A. Это означает, что он пытается загрузить ссылки проекта A, но загрузчик сборок не может их найти, потому что у меня нет log4net в GAC, только локально для проекта A, чтобы ссылаться на него. В моем случае, добавление log4net в DEVPATH (GAC тоже подойдет) было решением.