Я использую внешнюю DLL в своем проекте.Когда я пытаюсь запустить приложение на 64-битной машине, оно вылетает с FileLoadException
.Так как он работает нормально на 32-битной системе, я подозреваю, что DLL будет 32-битной.Однако установка целевой платформы проекта на x68 не помогает.
Я прочитал 32-битную DLL в 64-битном приложении в c # и Загрузка 32-битной библиотеки DLL в 64-битное приложение и на некоторых других страницах, которые говорят, что я должен собрать все приложение как 32-битноепроцесс (который не будет беспокоить меня - он должен быть просто исполняемым на 64-битных окнах), но я не знаю, как создать 32-битное приложение на 64-битной машине разработчика, если не установив целевую платформу ...
Код всего лишь
static void Main(string[] args)
{
var mf = new QuickFix43.MessageFactory();
Console.WriteLine("running");
Console.ReadKey();
}
, а материал QuickFix взят из DLL.
Редактировать: Я проверил DLL с помощью CorFlags и вычислил
CLR Header: 2.5
PE : PE32
CorFlags : 16
, что означает, что dll является сборкой смешанного режима, которая может быть загружена только в среде i386 (http://blogs.msdn.com/b/slessard/archive/2010/04/09/types-of-managed-code-assemblies.aspx)
Возможно ли загрузить ее в 64-битнойокружающая среда