Delphi(win32ネイティブ)アプリケーションからCOMを介して呼び出すac#アセンブリがあります。
これは、1台を除いて、テストしたすべてのマシンで機能します。
問題は、COMオブジェクトを作成しようとすると、Delphiアプリケーションが「クラスが登録されていません」と表示されることです。
さて、下のレジストリを見ると、HKEY_CLASSES_ROOT\DelphiToCSharp\CLSID
そこにリストされているGUIDは、AssemblyInfo.csのアセンブリGUIDと同じではありません。それは同じである必要があります-それはそれがインストールされている他のすべてのコンピュータで同じです。
を試しregasm /unregister delphitocsharp.dll
ましたが、レジストリキーが削除されます。次に、そうするとregasm delphitocsharp.dll
、レジストリキーが返されますが、GUIDは以前と同じです(つまり、間違っています)。それでもDelphiは「クラスが登録されていません」と表示されます。
動作中のマシンのDelphiToCSharp.dllは、動作していないマシンのバージョンと同じです(md5で確認済み)。
私が考えることができるのは、古いバージョンのdllが以前に登録されていて、レガスムを混乱させているそのファイルの残りがまだ存在しているということだけです。
この問題を修正または少なくともさらに診断するにはどうすればよいですか?