当/ u arg不起作用时,如何取消注册最初使用RegSvr32添加的COM dll?

时间:2008-08-21 12:30:49

标签: visual-studio com regsvr32 dllregistration

对,最初跑了:

c:\regsvr32 Amazing.dll

然后,(不小心 - 我可能会添加)我必须再次运行它,并且(确实)在发布'Amazing.dll'的新版本时再次运行它。是的 - 我知道现在我应该跑:

c:\regsvr32 /u Amazing.dll

事先 - 但是嘿!我忘了。

要切入追逐,在VS中添加COM引用时,我可以看到3个'Amazing'实例都指向同一个位置(c:\ Amazing.dll),运行regsvr32 /u删除其中一个引用,第二次 - 什么也没做......

如何摆脱这些引用? 我在看一个注册方案吗? - 如果是这样的话 - 如果删除其中一个键

完全会发生什么

干杯

3 个答案:

答案 0 :(得分:13)

您的对象的GUID不应该更改。换句话说,一旦注册COM对象,重新注册不应该向注册表添加任何其他内容。

除非您向项目中添加了其他COM接口或对象。

在任何情况下,如果这是一次性交易(听起来像是这样),请打开注册表并手动删除不需要的密钥。

答案 1 :(得分:4)

有一个MS的工具仍在浮动,自从Win95天以来一直在扫描注册表并执行诸如发现不再指向有效文件的COM键之类的东西,例如RegClean(我在这里找到它:{ {3}})我看到有些地方在使用VB时遗留的COM内容时仍然使用它们,这些内容在每次构建后生成新的COM GUID。

因此,如果你有了,那么取消注册并删除或移动文件,运行应用程序,它将清除“孤立”条目。

如果您决定使用RegEdit删除密钥,则可能需要删除类ID以及guid条目。

答案 2 :(得分:0)

我以前让自己陷入了可怕的混乱局面。不幸的是,我不得不选择删除每个引用的注册表。