プロジェクトで外部dllを使用しています。64ビットマシンでアプリケーションを実行しようとすると、がクラッシュしFileLoadException
ます。32ビットシステムでは正常に動作するため、dllは32ビットであると思われます。ただし、プロジェクトのターゲットプラットフォームをx68に設定しても効果はありません。
私はc#の64ビットアプリケーションで32ビットdllを読み、64ビットアプリケーションで32ビットDLLライブラリをロードし、アプリ全体を32ビットプロセスとしてビルドする必要があることを示す他のいくつかのページを読みました(これは気になりません-64ビットウィンドウで実行可能である必要があります)、しかし、ターゲットプラットフォームを設定しない場合、64ビット開発マシンで32ビットアプリを構築する方法がわかりません...
コードはただです
static void Main(string[] args)
{
var mf = new QuickFix43.MessageFactory();
Console.WriteLine("running");
Console.ReadKey();
}
QuickFixのものはdllからのものです。
編集: CorFlagsでdllをチェックし、計算しました
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ビット環境でロードすることは可能ですか?