我有一个COM互操作程序集,我想从.NET应用程序检查我要创建的组件是否已安装在计算机上.
如果没有安装,我想提供一个很好的错误消息.
将实例化放入try-catch对我来说不是一个好的解决方案,因为我想在缺少的安装和可能发生的其他错误之间进行操作.
我的想法是检查HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface路径下的注册表中是否存在具有COM类ID的节点.但是有更好的方法吗?
不幸的是,我认为最好的方法是尝试实例化它.签入注册表并不能保证组件实际上在那里(例如,文件可能在注册后被删除或移动).