Исключение при попытке загрузить DLL-библиотеку Berkeley DB - PullRequest
1 голос
/ 13 июня 2011

У меня есть приложение .NET 3.5, которое зависит от C ++ DLL (Berkeley DB-libdb_csharp51d.dll), и я могу запустить его на своем компьютере с Windows 7 без проблем, но я пробовал на двух другие машины (Windows Server 2008 и Windows 7), и приложение продолжает получать исключение.

Исключение составляет:

System.DllNotFoundException: невозможно загрузить библиотеку DLL 'libdb_csharp51d': приложению не удалось запуститься, поскольку его параллельная конфигурация неверна. Пожалуйста, смотрите журнал событий приложения или используйте инструмент командной строки sxstrace.exe для более подробной информации. (Исключение из HRESULT: 0x800736B1)

Сообщение в Event Viewer:

Сбой генерации контекста активации для "C: \ Path \ To \ libdb_csharp51d.DLL". Не удалось найти зависимую сборку Microsoft.VC90.DebugCRT, processorArchitecture = "amd64", publicKeyToken = "AWUe.k, PRvnbjRtZ", type = "win32", version = "9.0.21022.8". Пожалуйста, используйте sxstrace.exe для подробной диагностики.

(обратите внимание, что я зашифровал маркер открытого ключа)

Структура папок такова:

C: \ Путь \ К \
+ myapplication.exe
+ some.DLL
+ libdb_csharp51d.DLL
+ someother.DLL

Я запустил приложение на своей машине, чтобы убедиться, что оно работает нормально, затем скопировал папку, как есть, прямо на сервер, чтобы не было разницы между содержимым папки между сервером и моей машиной. Я сделал то же самое с другой машиной Win7 (все машины 64-битные). Первоначально я думал, что проблема будет решена после установки Berkeley DB, но даже после ее установки я все еще получаю то же исключение.

Кто-нибудь знает, что может быть причиной этой проблемы? Есть ли исправления / обходные пути?

1 Ответ

2 голосов
/ 14 июня 2011

Он ищет msvcrtd.dll (или номер с номером версии).Он должен быть где-то на ПК для разработки.

...