Не могу использовать внешнюю DLL: FileNotFoundException - PullRequest
2 голосов
/ 11 апреля 2011

У меня 2 проекта.Первый просто генерирует DLL.

Второму нужна первая DLL.Но когда я вызываю метод из DLL, у меня возникает FileNotFoundException с таким сообщением:

BDD, версия = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null

Я уверенчто файл существует.Где я не прав?

Ответы [ 3 ]

5 голосов
/ 11 апреля 2011

Согласен с Киреном (+1). Может быть, он находит вашу DLL, но требует другой зависимой DLL, которая не может быть найдена. Или есть проблема с подписью (может быть, вы ищете другую версию DLL и т. Д ...) Чтобы включить журнал Fusion (вам нужно создать пару ключей реестра): Set LogFailures to 0/1 to disable/enable

Кстати, fusion - это DLL, которая содержит логику для загрузки сборки (поиск локального пути и подпапок, если указано, глядя на GAC, ...). После запуска исполняемого файла вы найдете журнал, в котором подробно описаны проблемы, обнаруженные CLR при загрузке сборок, на которые есть ссылки (игнорируйте журналы NativeImage, просматривайте только журналы по умолчанию).

1 голос
/ 11 апреля 2011

Не могли бы вы дать полное сообщение - и:

Имейте в виду, что FileNotFoundException может быть для зависимости ссылочной DLL, а не только самой ссылочной DLL.

Возможно, вы захотите включить журнал привязки сборки (журнал Fusion), чтобы увидеть, что происходит, если DLL действительно присутствует.

0 голосов
/ 11 апреля 2011

Краткий ответ: DLL должна находиться в том же каталоге, что и EXE.

Так ли это?

...