简短的
我有一个安装包(基于MSI),它试图注册一个dll文件用作Windows资源管理器栏(Internet Explorer工具栏)。
定制操作定义如下:
[SystemFolder]\regsvr32.exe /s "pathtodllhere"
错误
MSI日志的输出:
到目前为止,我的测试/想法简要总结如下:
解决方案和思考
希望我在这里展示了我的研究成果,不要浪费任何人的时间!
最佳答案
最佳实践解决方案(如您所提到的)是从组件中提取注册表项,然后使用msi将它们写入注册表。
背景
Regsvr32需要管理员权限和提升权限确认才能在64位Windows 7下注册COM组件,但msiexec不知道为自定义操作请求提升权限。
您可以通过使用“打开方式...”在组件上运行C:\Windows\SysWOW64\regsvr32.exe(这将失败)来测试此要求。而如果您创建用于注册的批处理文件,然后“以管理员身份运行”,则组件将成功注册。
关于windows - MSI错误-regsvr32自定义操作失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8822223/