我正在为我开发的解决方案构建安装程序。我的一个项目的输出是需要注册的dll。我使用Visual Studio生成MSI,然后使用InstallShield修改它。在Visual Studio中,我添加了需要执行管理员权限的自定义操作,并将dll的注册属性设置为vsdrpCOMSelfReg
。当我在没有管理员权限的情况下运行msi时,会显示一条消息,指出操作需要管理员角色,当我确认并更改用户帐户时,安装完成时没有任何错误,但是该dll不会被注册。 我错过了什么吗?如何正确注册一个DLL? 任何帮助将不胜感激。Installshield MSI无法注册dll
1
A
回答
4
SelfRegistration不是Windows安装程序的最佳实践。正确的方法是将COM元数据写入MSI,并允许MSI复制文件并应用注册表数据。在InstallShield中,通过为您的DLL创建组件,将该DLL标记为密钥文件,然后右键单击该文件并选择Extract COM来实现此目的。然后,InstallShield将模拟注册并将该信息创建为正确的表格。在一台干净的机器上构建和测试。不需要自定义操作,安装程序将正确支持回滚场景。
2
没有理由,甚至创建自定义操作要做到这一点,即使是Visual Studio中。将该文件标记为vsdrfCOM,并将构建时将类注册解压缩到MSI的Class表中。即使你坚持自注册,你也可以将它标记为vsdrfComSelfReg,它将从MSI文件的SelfReg表中注册。根本没有自定义操作。无论如何,正如克里斯托弗所说的那样,在安装时进行自我注册并不是一个好习惯,原因有很多,其中之一是缺少依赖关系。
相关问题
- 1. installshield light ActiveX DLL未注册
- 2. MSI - 有条件注册DLL
- 3. MSI Desparation。 MSI不会注册DLL
- 4. 无法注册DLL
- 5. 无法注册.NET COM DLL
- 6. 如何在installshield中禁用字体注册installscript MSI项目?
- 7. 使用WiX无法注册DLL
- 8. ATL DLL无法注册到XP
- 9. 为什么我的DLL无法注册?
- 10. 无法使用regsvr32注册dll
- 11. 无法注册.dll Windows 7 Professional x64
- 12. COM注册的DLL不会生成MSI安装程序的注册类型库
- 13. 注册dll/tlb
- 14. 注册的DLL
- 15. Redemption DLL注册
- 16. InstallShield X无法将单一值添加到注册表项
- 17. 无法注册
- 18. 无法使用regsvr32注册dll:模块“* .dll”加载失败
- 19. Visual Basic脚本注册一个DLL作为MSI的一部分
- 20. C++ \ Cli COM程序集无法由MSI注册
- 21. DLL注册和取消注册
- 22. Teamcity和注册DLL
- 23. 重新注册DLL
- 24. 无法注册MBean
- 25. 无法注册flash10c.ocx
- 26. 无法在注册
- 27. 无法注册UICollectionViewCells
- 28. 无法注册Heroku
- 29. 托管DLL方法的InstallShield
- 30. MSI无提示安装不会添加注册表和服务条目
你为什么要构建一个Visual Studio MSI,然后说InstallShield失败? –
'我用Visual Studio生成一个MSI,然后用InstallShield修改它。“这就是我所说的 – Kira