问题描述
当我使用 REGASM 工具注册为 COM 互操作启用的 .NET 程序集时,该工具会为每个组件版本创建一个单独的注册表项。例如,我得到:
HKEY_CLASSES_ROOT\CLSID\{myCLSID}\InprocServer32\1.0.0.0
HKEY_CLASSES_ROOT\CLSID\{myCLSID}\InprocServer32\1.1.0.0
等
这些注册表中的每一个都包含与 HKEY_CLASSES_ROOT\CLSID{}\InprocServer32 下大致相同的结构值,除了条目指向不同的位置,具体取决于组件版本。 HKEY_CLASSES_ROOT\CLSID{myCLSID}\InprocServer32 显然包含最新的注册版本,当然,这是 COM 消费者通常会使用的,他们会忽略其余的。
这种结构显然允许不同版本的组件在同一台计算机上共存(我知道这违反了最初指定的 COM 规则)。我想使用它,但我在 Microsoft 文档或谷歌搜索中找不到任何关于它的文档。有人知道吗?我正在寻找带有版本说明符的 CoCreateInstance/CoCreateInstanceEx 之类的东西。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)