我正在为工作中的程序创建一个新的安装程序,我在注册psqlodbc驱动程序时遇到问题。不幸的是,我不太了解安装程序或odbc驱动程序。
我有这个特定程序的旧安装程序的副本,该程序是由其他人创建的。当我使用Orca查看msi中的注册表时,我可以看到几个与psqlodbc相关的条目:
**Registry** **Key** **Name** **Value**
psqlodbc.reg.1.<GUID> SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers PostgreSQL Installed
psqlodbc.reg.2.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL APILevel 1
psqlodbc.reg.3.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ConnectFunctions YYN
psqlodbc.reg.4.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL Driver [#psqlodbc.dll.<GUID>]
psqlodbc.reg.5.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL DriverODBCVer 03.00
psqlodbc.reg.6.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL FileUsage 0
psqlodbc.reg.7.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL Setup [#psqlodbc.dll.<GUID>]
psqlodbc.reg.8.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL SQLLevel 1
psqlodbc.reg.9.<GUID> SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL UsageCount #1
但是,当我尝试使用heat收集psqlodbc.dll文件以便将其合并到我的安装程序中时,.wxs文件中显示的所有内容都是文件元素(没有注册表数据)。我已经尝试使用regsvr32手动注册,但这给了我一个关于“入口点”找不到的错误。
基本上,旧安装程序正在为psqlodbc驱动程序创建注册表项,我可以使用regedit查看,我不知道如何将此行为合并到我的新安装程序中。
这是我上周的工作,我真的很想在离开之前让这个安装程序正常工作。
请帮助!!
答案 0 :(得分:1)
如果使用RegistryKey
和RegistryValue
元素从原始安装程序复制注册表项,它是否有效?它可能只是原始包中的手工编写的注册表值。