Приложение .NET 4 против .NET 3.5 C #. Не удалось загрузить файл или сборку 'x' или одну из ее зависимостей. Указанный модуль не может быть найден - PullRequest
2 голосов
/ 26 февраля 2012

У меня есть приложение C # WPF, созданное в VS 2010 с целевой платформой x86.Этот exe-файл вызывает управляемую DLL с целевой платформой ANYCPU.Управляемая DLL имеет ссылку на C ++ DLL, которая компилируется с опцией Common Language Runtime Support (/ clr).

В .NET 3.5 приложение отлично работает на любой ОС.Он также отлично работает на Win 7, как на 32-битной, так и на 64-битной.

Теперь, когда я преобразовал приложение и его библиотеки DLL в целевой .NET 4. Если он работает в .NET менее 4,выдает ошибку, что требуется .NET 4, что является ожидаемым результатом.

Преобразованное приложение прекрасно работает в моей системе разработки и в любой системе, в которой есть .NET 4 + .NET 3.5.Все идет нормально!

Однако в системах с ТОЛЬКО .NET 4 (т.е. Win 8) или win 7 без .NET 3.5 я получаю сообщение об ошибке: Не удалось загрузить файл или сборку 'x' или одну из ее зависимостей.Указанный модуль не может быть найден.

'x' - это C ++ dll, скомпилированная с опцией Language Runtime Support (/ clr).

Короче говоря, проблема возникает только в системах с .NET 4.

Любой совет будет оценен.Спасибо, - Кам

Ответы [ 2 ]

0 голосов
/ 26 февраля 2012

Со времени .NET 4 произошли изменения в политиках загрузки собственного кода. Чтобы решить эту проблему, добавьте файл App.config в проект .exe со следующим содержимым:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
  </startup>
</configuration>

Это обсуждение можеттакже помогают: Что делает «useLegacyV2RuntimeActivationPolicy» в конфигурации .NET 4?

0 голосов
/ 26 февраля 2012

.NET 4 имеет обратную совместимость со всеми предыдущими версиями. Так что, похоже, проблема не в версии платформы. Может ли это быть безопасность папки? Попробуйте проверить его разрешения.

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