使用Wix创建DSN

时间:2017-01-20 18:58:58

标签: wix odbc dsn

无法通过Wix制作系统DSN

这是我的测试代码

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="TestProduct" Language="1033" Version="0.0.0.1" Manufacturer="WixEdit" UpgradeCode="*">
        <Package Description="Test file in a Product" Comments="Simple test" InstallerVersion="200" Compressed="yes" />
        <Media Id="1" Cabinet="simple.cab" EmbedCab="yes" />
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Component Id="C_PROD_DSN" Guid="*">
                <ODBCDataSource Id="Prod_Dsn" Name="SomeName" Registration="machine" DriverName="ODBC Driver 11 for SQL Server">
                    <Property Id="Description" Value="Some Description" />
                    <Property Id="Database" Value="SomeDB" />
                    <Property Id="Language" Value="us_english" />
                    <Property Id="LastUser" Value="SomeUser" />
                    <Property Id="Driver" Value="C:\windows\system32\msodbcsql11.dll" />
                </ODBCDataSource>
            </Component>
        </Directory>
        <Feature Id="DefaultFeature" Title="Main Feature" Level="1">
            <ComponentRef Id="C_PROD_DSN" />
        </Feature>
        <UI />
    </Product>
</Wix>

Wix Edit编译它很好但是当我运行它时我得到了

  

配置ODBC数据源时出错:SomeName。 ODBC错误6:在注册表中找不到组件。验证文件SomeName是否存在以及您是否可以访问它。

这是SQL DB的DSN,而不是文件。

我知道我可以通过构建我需要的注册表树来完成这项工作,我只想尝试使用内置的任务功能。

可以使用ODBCDataSource完成吗? (没有自定义操作,我现在没有时间写另一个)或者我应该减少我的损失并使用RegistryKey和RegistryValue来做它?

0 个答案:

没有答案