私は COM をあまり扱っていないので、私の無知をお許しください。
背景: 私は VS 2010 でプロジェクトに取り組んでいます。C# ソリューションに統合された C# COM DLL と、セットアップ/展開プロジェクトもあります。セットアップ プロジェクトは、インストール時に COM .tlb ファイルを登録するように設定されています。
問題: 誰かが C# アプリケーションの最新バージョン、つまり最新の COM DLL をインストールしようとしたときに、以前のバージョンの C# アプリケーションとその COM DLL が PC に存在していました。これが発生すると、C# アプリケーションの両方のバージョンの COM 機能が壊れました。または、それが発生したと想定しています。
これは典型的な COM/DLL-Hell の動作ですか? 両方の C# アプリケーションをアンインストールし、1 つだけを再インストールすると、すべてが正常に戻ります。両方を同時にインストールすることはできないようです。
COM DLL プロジェクトの GUID を変更し、COM DLL プロジェクトの AssemblyVersion と AssemblyFileVersion を変更しようとしましたが、すべて結果がまちまちでした。これらの項目を変更すると、アプリケーションの新しいインストールは (すばらしい) 機能しますが、古い C# アプリケーションには機能する機能がありません。
注: COM 機能が失敗したときにスローされるエラーや例外はありません。COM 呼び出しは何もしていないように見えます。したがって、「静かに」失敗しています。
私はこれを研究しており、さまざまな変更を試みて実際に成功していません...おそらく私はこれについて間違った方法で考えています. これについてより多くの経験を持ち、私に洞察を与えることができる人は他にいますか?