我们有一个COM可见的.NET程序集.此程序集是通过“每个用户COM注册”注册的,通过将注册表项添加到具有管理特权的HKCU中。程序集已成功注册,并且可以实例化COM对象,而不会给用户带来任何问题。
但是,在调试器(如Visual 2010 )中,如果我想要CoCreateInstance()程序集中的COM对象之一,则返回错误代码0x80040154,即“未注册的类”。当我们以前使用"regasm.exe /codebase *.dll“时,还没有发生过这种情况。我检查了regasm.exe是否将注册表项添加到HKLM。以下是我的问题:
非常感谢你的回答。
发布于 2013-11-21 23:36:16
将注册表项添加到具有管理特权的HKCU中。
使用HKCU是易碎的。只有一个场景可以正常工作,管理员权限必须由运行程序的完全相同的用户帐户获得。这只能在您获得UAC提升时才会发生,通常是通过使用“”选项运行cmd.exe。
如果您通过不同的帐户获得管理特权,则将这些密钥写入不同的HKCU。换句话说,HKEY_USERS的一个不同的子键.
1)然后你的程序找不到钥匙。不涉及调试器。
2)这就是为什么Regasm.exe只支持写HKLM,不能选择写信给HKCU。避免了支援呼叫。
https://stackoverflow.com/questions/20133234
复制相似问题