我可以在Wix安装程序中读取ODBCDataSource属性吗?
我有一个Wix安装程序,它根据用户在安装过程中设置的一些参数创建一个系统DSN(ODBCDataSource组件)我可以在Wix安装程序中读取ODBCDataSource属性吗?,wix,odbc,installation,Wix,Odbc,Installation,我有一个Wix安装程序,它根据用户在安装过程中设置的一些参数创建一个系统DSN(ODBCDataSource组件) <Component Id="ODBCDATASOURCE" Guid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" KeyPath="yes"> <ODBCDataSource Id="ODBCDATASOURCE" Name="DBconnection" Registration="mac
<Component Id="ODBCDATASOURCE" Guid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" KeyPath="yes">
<ODBCDataSource Id="ODBCDATASOURCE" Name="DBconnection" Registration="machine" DriverName="PostgreSQL Unicode" >
<Property Id="Database" Value="[ODBCDATABASENAME]" />
<Property Id="Server" Value="[ODBCSERVERIP]" />
<Property Id="Username" Value="[ODBCUSER]" />
<Property Id="Port" Value="5432" />
<Property Id="Password" Value="[ODBCPASSWORD]" />
</ODBCDataSource>
</Component
最后,解决方案比预期的简单。
我刚从注册表中读取ODBC值:
<Property Id="ODBCSERVERIP" Secure="yes">
<RegistrySearch Id="SearchReg_ODBCSERVERIP" Type="raw" Root="HKLM" Key="Software\ODBC\ODBC.INI\DBconnection" Name="Servername" />
</Property>
<Property Id="ODBCDATABASENAME" Secure="yes">
<RegistrySearch Id="SearchReg_ODBCDATABASENAME" Type="raw" Root="HKLM" Key="Software\ODBC\ODBC.INI\DBconnection" Name="Database" />
</Property>
<Property Id="ODBCUSER" Secure="yes">
<RegistrySearch Id="SearchReg_ODBCUSER" Type="raw" Root="HKLM" Key="Software\ODBC\ODBC.INI\DBconnection" Name="Username" />
</Property>
<Property Id="ODBCPASSWORD" Secure="yes" Hidden="yes">
<RegistrySearch Id="SearchReg_ODBCPASSWORD" Type="raw" Root="HKLM" Key="Software\ODBC\ODBC.INI\DBconnection" Name="Password" />
</Property>
这也可以通过自定义操作(读取注册表并将值设置为属性)完成,但现在这种方法对我来说已经足够了。是的,有。使用C#编写的自定义操作填充属性:一方评论:我不认为在注册表中存储服务器连接字符串是一个好主意…感谢链接,我会看一看。如果您仍然有问题,请毫不犹豫地提问!这不是一个愚蠢的问题。因为我现在不使用C#,也从不在自定义操作中使用外部dll,所以我需要时间来理解和实践这一点。但你让我走上了正确的道路。所以现在,没有其他问题了,再次感谢。