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。
相同。该死的。事情。在邮件列表中? https://lists.sourceforge.net/lists/listinfo/wix-users – Will 2010-04-12 18:05:25
https://sourceforge.net/tracker/?func=detail&aid=2986062&group_id=105970&atid=642714 – Will 2010-04-12 19:00:12
狗屎,我也认为它可以防止FirewallException运行以及!!! – Will 2010-04-22 13:04:15