COMDLLを登録せずに.NETサービスからサードパーティのCOMDLL(.NETコンポーネントだとは思わない)を使用しようとしていますが、今のところ運がありません。
ここ(http://stackoverflow.com/questions/465882/generate-manifest-files-for-registration-free-com)からマニフェストファイルをコピーして、開始点として使用しました(COMDLLマニフェストを生成しました参照されるmt.exe/zippy42.exe)。しかし、私が得るのは次のエラーだけです:
例外:System.InvalidCastExceptionメッセージ:タイプ'LOGICLib.LogicClass'のCOMオブジェクトをインターフェイスタイプ'LOGICLib.ILogic'にキャストできません。IID'{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAA3E8FB4}'のインターフェイスのCOMコンポーネントに対するQueryInterface呼び出しが、次のエラーのために失敗したため、この操作は失敗しました:そのようなインターフェイスはサポートされていません(HRESULTからの例外:0x80004002(E_NOINTERFACE)) 。ソース:D:\ MyProject \ Source \ Server \ MyAssembly \ Loader.cs:lineのMy.Server.MyAssembly.Loader.Connect()のLOGICLib.LogicSecuredClass.Connect(String IP、UInt16 Value、Int32&Result)のInterop.LOGICLib 461
アプリケーションマニフェストは、サービスを開始するexeにちなんで名前が付けられています。また、COMDLLを呼び出すアセンブリにちなんで名前を付けてみました。コマンドラインから始めて、VisualStudioのデバッガーを使用してみました。また、サードパーティから提供された相互運用ファイルを使用して、独自のファイルを生成してみました。
(注-これまでのところ、Windows XPでのみテストしました。)
私は今これに2日間を費やしましたが、まったく進歩していません。私が見逃したかもしれないアイデアはありますか?