Мой установщик, созданный с помощью MS WiX, устанавливает компонент (некоторые файлы) в существующую папку в каталоге данных приложения пользователя.Эта существующая папка пуста.Таким образом, при удалении программа установки удалит эту папку, чего не следует делать.Так как это предотвратить?
Код:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="LocalAppDataFolder" Name="AppData">
<Directory Id="OtherCompanysFolder" Name="OtherCompany">
<Directory Id="OtherProductsFolder" Name="Product">
<Directory Id="AddOnsFolder" Name="AddOns">
<Directory Id="MyAddOnFolder" Name="MyAddOn">
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment Id="AddOnFiles">
<ComponentGroup Id="ProductComponents" Directory="MyAddOn">
<Component Id="ProductComponent" Guid="{xxx}">
<RegistryKey Root="HKCU" Key="Software\$(var.Manufacturer)\$(var.Product)">
<RegistryValue Type="string" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveMyAddOnFolder" On="uninstall" Directory="MyAddOnFolder" />
<RemoveFolder Id="RemoveAddOnsFolder" On="uninstall" Directory="AddOnsFolder" />
<RemoveFolder Id="RemoveOtherProductsFolder" On="uninstall" Directory="OtherProductsFolder" />
<RemoveFolder Id="RemoveOtherCompanysFolder" On="uninstall" Directory="OtherCompany" />
<File Id="Executable" Source="path\to\My.exe" />
</Component>
</ComponentGroup>
</Fragment>
Проблема в том, что если я удалю узлы
<RemoveFolder Id="RemoveAddOnsFolder" On="uninstall" Directory="AddOnsFolder" />
<RemoveFolder Id="RemoveOtherProductsFolder" On="uninstall" Directory="OtherProductsFolder" />
<RemoveFolder Id="RemoveOtherCompanysFolder" On="uninstall" Directory="OtherCompany" />
Свет и Лед будут жаловаться:
ошибка LGHT0204: ICE64: каталог AddOnsFolder находится в профиле пользователя, но не указан в таблице RemoveFile.
Сохранение этих узлов делает Light и Ice счастливыми, но удаляет AddOnsFolder (которыйэто не должно делать).
Любые идеи, что я мог сделать?
PS: В разделе комментариев было рекомендовано подавить сообщение об ошибке с помощью флага (-sice: ICE64).Это не решение.Пока установщик компилируется, папка AddOn по-прежнему удаляется (что не должно происходить)