I am creating a new installer for a program at work and I'm having issues registering the psqlodbc driver. Unfortunately I don't know much about installers or odbc drivers.
I have a copy of the old installer for this particular program, which was created by someone else. When I look at the registry table in the msi using Orca, I can see several entries related to 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
However, when I try to harvest the psqlodbc.dll file using heat in order to incorporate it into my installer, all that shows up in the .wxs file is a file element (no registry data). I've tried registering manually using regsvr32, but that gives me an error about the "entry-point" not being found.
Basically, the old installer is creating registry entries for the psqlodbc driver, which I can see using regedit and I have no idea how to incorporate this behavior into my new installer.
This is my last week at work and I'd really like to get this installer working before I leave.
Please help!!
Does it work if you replicate the registry entries from the original installer using RegistryKey
and RegistryValue
elements? It might just be hand-authored registry values in the original package.