У меня есть проект 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:
<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.