如何删除ProgID("Log.Main")注册表中注册的所有COM条目。
我有一个COM组件,它是使用regasm注册的,现在我可以在注册表中的CLSID(“Log.Main”)下看到这个COM组件的多个类in (使用Log.Main)。
我希望使用ProgID 'Log.Main‘从注册表中使用C#从注册表中删除与此COM组件相关的所有条目,或者是否有其他可用的工具来清除注册表。
发布于 2014-08-16 10:26:05
这通常是不可能的,除非您仍然有原始组件。ProgId只给出Classes注册表项CLSID {guid}中的条目。您将无法在TypeLib和Interface注册表项中找到条目,因为您不知道它们的{guid}。
为了避免注册表污染,在重新构建组件之前,首先注销组件是非常重要的。当您使用“”选项时,这是由MSBuild自动完成的,该选项可以在project + Build选项卡属性页的.NET项目中获得。由于您需要运行VS elevated,所以MSBuild可以对寄存器进行猴子操作,右键单击快捷方式,然后选择。
如果由于某种原因这是不切实际的,那么您可以通过显式使用Guid属性找到一些解脱,因此类型库、接口和类Guid总是相同的。但是,在调试和测试组件时再次删除它们非常非常重要,否则在进行更改时会面临非常严重的DLL风险。强烈支持MSBuild自动为您完成此操作。
https://stackoverflow.com/questions/25339051
复制相似问题