【发布时间】:2010-02-25 05:17:54
【问题描述】:
在 vista/win7 机器上部署 COM dll 需要实现的 COM 接口是什么。听说用COM处理UAC账户有事, 但我找不到 MSDN 页面,请帮忙。
谢谢
【问题讨论】:
在 vista/win7 机器上部署 COM dll 需要实现的 COM 接口是什么。听说用COM处理UAC账户有事, 但我找不到 MSDN 页面,请帮忙。
谢谢
【问题讨论】:
注册 COM 对象只需将write the appropriate keys 注册到注册表。在 Vista 上没有特殊的接口可以实现;但是您需要确保您的安装程序具有管理权限,以便它可以实际写入注册表。默认情况下,程序将作为中等完整性级别的应用程序运行,不能写入 HKLM 和 HKCR(通常)。如果您使用 MSI 安装(查看WiX toolkit;它使注册 COM 对象变得容易),那么操作系统将在安装时自动提示用户提升。
【讨论】:
如果您正在部署 COM 控件,它可能是作为应用程序安装的一部分。
在这种情况下,可以使用应用程序清单来实现Registration free COM。 (链接的文章在 .NET 部分而不是 MSDN 的 Windows 部分,但适用于 Win32 开发和部署)。
【讨论】:
没有特殊的 COM 接口,但您必须拥有提升的权限才能运行 regsvr32.exe 来注册您的 COM dll。如果您使用 MSI 进行安装,那么当您的安装程序尝试注册您的 COM dll 时,Vista 应该会自动提示 UAC 提升。
这里有更多关于 Vista 上的 UAC 问题的信息 http://blogs.msdn.com/vcblog/archive/2006/09/06/742187.aspx
【讨论】: