C# 如何注销/删除在注册表中创建的所有COM项
如何删除ProgID(“Log.Main”)注册表中注册的所有COM项 我有一个COM组件,它是使用regasm注册的,现在我可以在注册表中的CLSIDs(“Log.Main”)下看到这个COM组件的多个类ID(使用oleview.exe)C# 如何注销/删除在注册表中创建的所有COM项,c#,com,regasm,C#,Com,Regasm,如何删除ProgID(“Log.Main”)注册表中注册的所有COM项 我有一个COM组件,它是使用regasm注册的,现在我可以在注册表中的CLSIDs(“Log.Main”)下看到这个COM组件的多个类ID(使用oleview.exe) 我想使用C#从注册表中删除与此COM组件(ProgID为'Log.Main')相关的所有条目,或者是否有其他可用的注册表清理工具。除非您仍然拥有原始组件,否则这通常是不可能的。ProgId只提供Classes注册表项中的条目CLSID{guid}。您将无法在
我想使用C#从注册表中删除与此COM组件(ProgID为'Log.Main')相关的所有条目,或者是否有其他可用的注册表清理工具。除非您仍然拥有原始组件,否则这通常是不可能的。ProgId只提供
Classes
注册表项中的条目CLSID{guid}。您将无法在TypeLib
和Interface
注册表项中找到条目,因为您不知道它们的{guid}
为了避免注册表污染,在重新构建组件之前,首先注销组件是非常重要的。当您使用“为COM互操作注册”选项时,MSBuild会自动完成此操作,该选项在.NET项目的“项目+生成”选项卡属性页上可用。由于需要运行VS提升以使MSBuild可以使用寄存器进行monkey操作,所以右键单击快捷方式并选择“以管理员身份运行”
如果由于某种原因这是不实际的,那么您可以通过显式地使用[Guid]属性来减轻压力,这样类型库、接口和类Guid总是相同的。但是,在调试和测试完组件后,再次删除它们是非常非常重要的,否则在进行更改时,您将面临非常严重的DLL崩溃风险。强烈支持MSBuild自动为您执行此操作