サードパーティの dll を使用してアプリケーションを開発しています。これは COM オブジェクトです。COM 登録不要を使用して、アプリケーションを分離しようとしています。しかし、これをすべて行う方法についての良い例/ウォークスルー/チュートリアルを実際に見つけることができません。私がしたことが正しいか間違っているか教えてください。
元の dll のマニフェストを作成し、tlbimp.exe を使用してタイル ライブラリを生成し、プロジェクトへの参照としてタイプ ライブラリを追加し、オブジェクトを正常にインスタンス化します。マニフェスト ファイルを既に提供していても、次のエラーが発生します。
System.Runtime.InteropServices.COMException は処理
されませんでした メッセージ = CLSID {7B3A2D19-1D82-4DF6-8939-B730058A5535} を持つコンポーネントの COM クラス ファクトリの取得に失敗しました。 )))。
これをグーグルで調べたところ、多くの人がビルド構成を指しているように見えますが、私はすでに x86 を使用するようにビルドを設定しています。dllもx86環境で開発されたと確信しています。(関係あるかどうかはわかりませんが..)
やった :
- dll 内の内部 RT_MANIFEST を削除せずに、外部マニフェストを提供します。
- mt.exe を使用して RT_MANIFEST を更新します。
- 上記の両方で生成されたタイプ ライブラリを使用します。
ところで、マニフェスト内のバージョン要素に FILEVERSION または PRODUCTVERSION 番号のどちらを使用する必要があるのかも知りたいです。(私は両方試しましたが、どちらもうまくいきませんでした)
どこで間違ったのか教えてください。マニフェストに間違った情報を提供しましたか? マニフェストにさらに必要な情報を知るにはどうすればよいですか?
さらに情報が必要な場合はお知らせください。ありがとうございます。