wixregistryodbcwindows-installerorca

Wix v3.7 - How do I incorporate an ODBC driver into my installer?


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!!


Solution

  • 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.