Проблема загрузки библиотеки времени выполнения C из исполняемого файла и DLL - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть приложение WPF, использующее .Net 3.5, которое загружает библиотеку времени выполнения C из: C: \ Windows \ WinSxS \ x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4926_none_508ed732bcbc0e5a \ msvcr90.dll. Давайте назовем это MyApp.Exe

В эту же папку также входят msvcp90.dll и msvcm90.dll.

Когда я запускаю определенное диалоговое окно, мне нужно загрузить определенную DLL, которая является C ++ DLL, используя CLR (назовем это MyPlugin.dll). MyPlugin.dll находится в той же папке, что и MyApp.exe, однако с помощью зависимости.exe я вижу, что он не находит msvcm90.dll или msvcp90.dll.

Если я пытаюсь просто скопировать msvcm90.dll и msvcp90.dll в ту же папку, что и MyPlugin.dll, он находит библиотеки DLL, но появляется сообщение об ошибке R6034 «Приложение неправильно попыталось загрузить библиотеку времени выполнения C ».

Как мне обойти это? Есть ли способ заставить MyApp.exe просто искать библиотеки DLL времени выполнения в текущей папке?

[редактировать]

Я создал исполняемый файл C ++ (назовем его CExec.exe), который пытается загрузить MyPlugin.dll и поместил его в ту же папку, что и MyPlugin.dll и MyApp.exe. CExec.exe может загрузить MyPlugin.dll, но MyApp.exe (приложение C #) не может загрузить MyPlugin.dll. У меня есть ощущение, что моя проблема связана с этим: http://connect.microsoft.com/VisualStudio/feedback/details/361682/vc9-sp1-generates-manifests-with-the-wrong-version-number

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...