DLLファイルはC#で準備されており、システムはWindows 7 64ビットです。RegAsmを適用すると、64ビットパスにレジストリが追加されず、32ビットに追加されるだけです。道。
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /register /codebase "C:\o.dll"
次に、regedit.exeでGUID=を確認すると、32ビットのレジストリパスにのみあることがわかります:HKEY_CLASSES_ROOT\CLSID\{... my guid is found here ....}
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{... not found my guid ...}
の代わりに
結果として、これに関して他の問題があります。誰もが何が起こっているのか、なぜそれが32ビットおよび64ビットのレジストリエントリを作成しないのかを提案できますか?」
あなたはそれを逆に持っています。 Wow6432Nodeは、32ビット固有のデータが送られる場所です。 32ビットregasm(Framework64ディレクトリではなくFrameworkディレクトリから)を使用して、コンポーネントをWow6432Nodeに登録します。
また、あなたはおそらくAllCPUオプションであなたのdllをコンパイルしました、あなたがそうするようにx64および/またはx86オプションでコンパイルして登録してみてください
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /register /codebase "C:\x64\o.dll"
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /register /codebase "C:\x86\o.dll"
追伸5年間の質問ですが、他の人々の助けになるかもしれません
私の2016 Windowsサーバーではそれは反対でした、それは「Framework64」フォルダーではなく「Framework」フォルダーを使用して登録する必要があった古いdllでした:「C:\ windows\Microsoft.net\Framework\v4.0.30319\regasm "/ register/codebase"ここにdllへのフルパス "