2010-04-08 23 views
1

我有一个由几个片段组成的Wix项目。其中一个片段具有数据库组件,另一个片段具有处理xml文件的组件。Wix XmlFile保持SqlDatabase无法创建数据库

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

下面是与片段两个威克斯文件正在使用:

数据库:

<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操作:

<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。

+0

相同。该死的。事情。在邮件列表中? https://lists.sourceforge.net/lists/listinfo/wix-users – Will 2010-04-12 18:05:25

+0

https://sourceforge.net/tracker/?func=detail&aid=2986062&group_id=105970&atid=642714 – Will 2010-04-12 19:00:12

+0

狗屎,我也认为它可以防止FirewallException运行以及!!! – Will 2010-04-22 13:04:15

回答

0

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