0

我正在为工作中的程序创建新的安装程序,但在注册 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 看到它,但我不知道如何将此行为合并到我的新安装程序中。

这是我工作的最后一周,我真的很想在我离开之前让这个安装程序工作。

请帮忙!!

4

1 回答 1

1

RegistryKey如果您使用和RegistryValue元素从原始安装程序复制注册表项,它是否有效?它可能只是原始包中的手工编写的注册表值。

于 2013-08-25T22:35:42.963 回答