У меня есть приложение .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, но даже после ее установки я все еще получаю то же исключение.
Кто-нибудь знает, что может быть причиной этой проблемы? Есть ли исправления / обходные пути?