У меня есть приложение MVC, которое ссылается на другой проект (B), который является проектом x86, имеет одну ссылку DLL Vc ++.
Когда я пытаюсь запустить проект B как консольное приложение в качестве запускаемого проекта, он работает правильно.
Но когда я получаю доступ к тому же из приложения MVC, я получаю BadImageFormatException или TypeInitializationException.
Я использовал сборку трассировки и получаю исключения, как показано ниже из каждого места по одному
BinaryAssemblyInfo Исключение:
‘System.Runtime.Serialization.SerializationException’ в mscorlib.dllДополнительная информация: Невозможно найти сборку ‘NI.Framework.Logger,
Версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = b98c50443551b471 ‘.RealProxy.cs
‘System.Runtime.Serialization.SerializationException’ в mscorlib.dll
Дополнительная информация: Невозможно найти сборку ‘NI.Framework.Logger,
Версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = b98c50443551b471 ‘.Исключение: «.ModuleLoadException» в
MsgComWrapper_4.0.dll Дополнительная информация: модуль C ++ не смог
загрузить при попытке инициализации домена приложения по умолчанию.Метод действия dispatcher.cs: Возникло исключение:
«System.TypeInitializationException» в System.Web.Mvc.dllДополнительная информация: инициализатор типа для » бросил
исключение.AsyncControllerActionInvokers.cs
Возникло исключение: System.TypeInitializationException в
System.Web.Mvc.dllДополнительная информация: инициализатор типа для » бросил
исключение.
Я перепробовал много следов и ошибок, но не сработал.
Ну а AFAIK у вас есть 2 варианта:
1. Вы можете создать приложение mvc для x86. Он будет работать на x64, но не будет использовать все возможности архитектуры x64.
2. Вы можете запустить свое приложение на компьютере с архитектурой x86. Это также будет работать
Единственный способ получить «истинное» приложение AnyCpu — это создать все свои библиотеки для AnyCpu. Это очень раздражает и не интуитивно, и я много страдал от этого с течением времени, но это реальность. Я все еще уверен, что есть лучшее решение, о котором я не знаю, хотя я потратил приличное количество времени на его поиск и ничего не нашел
Других решений пока нет …