对,最初跑了:
c:\regsvr32 Amazing.dll
然后,(不小心 - 我可能会添加)我必须再次运行它,并且(确实)在发布'Amazing.dll'的新版本时再次运行它。是的 - 我知道现在我应该跑:
c:\regsvr32 /u Amazing.dll
事先 - 但是嘿!我忘了。
要切入追逐,在VS中添加COM引用时,我可以看到3个'Amazing'实例都指向同一个位置(c:\ Amazing.dll),运行regsvr32 /u
删除其中一个引用,第二次 - 什么也没做......
如何摆脱这些引用? 我在看一个注册方案吗? - 如果是这样的话 - 如果删除其中一个键
,完全会发生什么干杯
答案 0 :(得分:13)
您的对象的GUID不应该更改。换句话说,一旦注册COM对象,重新注册不应该向注册表添加任何其他内容。
除非您向项目中添加了其他COM接口或对象。
在任何情况下,如果这是一次性交易(听起来像是这样),请打开注册表并手动删除不需要的密钥。
答案 1 :(得分:4)
有一个MS的工具仍在浮动,自从Win95天以来一直在扫描注册表并执行诸如发现不再指向有效文件的COM键之类的东西,例如RegClean(我在这里找到它:{ {3}})我看到有些地方在使用VB时遗留的COM内容时仍然使用它们,这些内容在每次构建后生成新的COM GUID。
因此,如果你有了,那么取消注册并删除或移动文件,运行应用程序,它将清除“孤立”条目。
如果您决定使用RegEdit删除密钥,则可能需要删除类ID以及guid条目。
答案 2 :(得分:0)
我以前让自己陷入了可怕的混乱局面。不幸的是,我不得不选择删除每个引用的注册表。