Wix XmlFile使SqlDatabase无法创建数据库

时间:2010-04-08 19:49:38

标签: wix windows-installer

我有一个由几个片段组成的Wix项目。其中一个片段具有数据库组件,另一个片段具有操作xml文件的组件。

当我包含XmlFile元素来操作文件时,不会创建由SqlDatabase定义的数据库。如果我注释掉XmlFile,那么数据库就会被创建。

以下是两个包含正在使用的片段的wix文件:

数据库:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">
  <Fragment>
    <DirectoryRef Id="TARGETDIR">
      <Component Id="Database1Creation" Guid="GUID_HERE">
        <sql:SqlDatabase Id="Database1"
          Server="[DATABASE_SERVER]" Database="[DATABASE_NAME]"
          CreateOnInstall="yes" ConfirmOverwrite="no"
          DropOnUninstall="yes">
        </sql:SqlDatabase>
      </Component>
    </DirectoryRef>
 </Fragment>
</Wix>

Xml Manipulation:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Fragment>

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLDIR" Name="MyDirectory">
          <Component Id="ServiceExecutables" Guid="GUID_HERE">
            <File Id="File1" Name="File1.xml" Source="Source/File1.xml" />
            <util:XmlFile Id="UpdateFile1" File="[INSTALLDIR]File1.xml" Action="setValue" ElementPath="//SomeContainer/SomeElement" Value="[SOME_VALUE]" />
          </Component>
        </Directory>
      </Directory>
    </Directory>

  </Fragment>
</Wix>

还安装了其他一些东西,但它们似乎对问题没有任何影响(我已删除其他所有内容并测试了安装)。

在使用XmlFile时查看安装日志时,如果没有,它们几乎是彼此的精确副本,除了SqlDatabase调用将完全丢失,并且XmlFile调用将在其位置。

这里有一个已知错误吗?或者我在做一些我不应该做的事情?这不是我们应用程序的杀手,因为我可以将我在xml文件中放入的内容移动到注册表中,但我宁愿不这样做。

我正在使用Wix 3.5。

1 个答案:

答案 0 :(得分:0)

好消息,构建1616修复此问题。尽快更新Wix。