|
分類:[.NET 全般]
2018/04/10(Tue) 15:16:31 編集(投稿者) 2018/04/10(Tue) 15:16:27 編集(投稿者)
VisualStudio2015 VB.NET .NetFramework4.7
お世話になっております。
プラットフォームをAnyCPUにしたDLLをCOM+アプリケーションとしてコンポーネントサービスに登録しました。 実行環境のOSは64bitで当該DLLが参照しているDLLはすべて、AnyCPUです。 動かしてみたところ、COM+に登録したアセンブリのクラスをインスタンス化する箇所で下記のメッセージが出力されます。
「クラスが登録されていません」
調べたところ、32bitと64bitのモジュールが混在している際に発生するエラーのようです。 そこで、COM+に登録するアセンブリのプラットフォームを32bit、64bitにしてテストしてみたところ、下記のようになりました。
32bit:正常動作。インスタンスも成功し、処理も実行できる。 64bit:COM+に登録したアセンブリを参照しているアセンブリのメソッドを呼ぶ箇所でエラー「間違ったフォーマットのプログラムを読み込もうとしました」
「間違ったフォーマットのプログラムを読み込もうとしました」というエラーについて調べたところ、 こちらも32bitと64bitのモジュールが混在している際に発生するエラーのようです。
そこで質問なのですが、COM+に登録するアセンブリは、プラットフォームを32ビットにしなければいけないのでしょうか? 仮にそうである場合、なぜそうなるのか教えて頂けないでしょうか?
宜しくお願い致します。
|