我可以在Wix安装程序中读取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

我有一个Wix安装程序,它根据用户在安装过程中设置的一些参数创建一个系统DSN(ODBCDataSource组件)

        <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,所以我需要时间来理解和实践这一点。但你让我走上了正确的道路。所以现在,没有其他问题了,再次感谢。