私のシナリオは次のとおりです(Win7、VS2010、.NET 4.0):
「Any CPU」用にコンパイルされた外部会社からの .NET アセンブリがあります (corflags.exe で検証済み)。このアセンブリは、外部企業からもネイティブ dll を読み込みます。このネイティブ dll には、x86 と x64 の 2 つのバージョンがあります。両方ご用意しております。
コンソール アプリケーションを作成するときは、.NET アセンブリを追加し (ネイティブ DLL の 1 つが .NET アセンブリによって検出されることを確認しながら)、その .NET ライブラリからクラスの 1 つのインスタンスを作成し、プログラムを開始します。大丈夫。
ただし、WCF サービス内でまったく同じ手順を実行すると、BadImageFormatException が発生します。明らかなことは、ターゲットプラットフォームでエラーを検索するか(「Any CPU」、「x86」、「x64」を試しました)、ネイティブDLLを交換しようとしています(x86とx64の両方を試しました)が、それは役に立ちません. ところで、すべての組み合わせを試しました...
問題が何であるかを知っている人はいますか?
ラース
PS: WcfSvcHost と IIS WCF ホストで発生した BadImageFormatExceptionを読みました。著者が述べているように、WcfSvcHost.exe を 32BIT としてフラグ付けすることで同様の問題を解決しましたが、WcfSvcHost.exe は厳密な名前が付けられているため、辞任できません。彼がどうやってそれを機能させたのかわからない...