x64 コードから x86 dll (サードパーティ、ソースへのアクセスなし) にアクセスする必要があります。私の調査では、dll を COM+ ラッパーに配置し、OOP サービスとしてアクセスすることが最も適切なアプローチであることが示されました。
ここまでは順調ですね。
したがって、「NET 2.0 Interoperability Recipes - A Problem Solution Approach」のガイドに従ってください (ただし、VS2010 と .NET4 を実行しています)。概念実証サービス (dll) を作成し、サーバー アプリケーションとして実行されるサービスが OOP であることをテストするクライアント (exe) を作成しました。どちらも機能し、コンポーネント サービスを介してサービスを無効にするとサービスが強制終了されるため、正しいルートを使用しているように見えます。
これはすべて x86 です。
クライアントを x64 に変更すると、「BadImageFormatException」が発生します。これは、単に x86 dll をロードしている場合に予想されることですが、これは OOP を実行しているはずです。
私は何かが欠けていることを知っています、そしてそれはおそらく非常に明白です。
その他の注意事項:
1) regsvcs post build を実行し、regsvcs /u prebuild 2) 問題の dll がそのままスタックしており、私のメイン コードベースは x64 でなければなりません