wix - 如何使用 WIX 使用 utils:XmlFile 修改组件 .xml 文件?
问题描述
我正在尝试创建一个安装程序,该安装程序还根据在单独对话框中输入的输入值安装 xml 文件。这里
</Component>
<Component Id="ConfigXMLDocument">
<File Id ="Config" KeyPath="yes" DiskId="1" Vital ="yes" Source="$(var.Server.ProjectDir)config.xml"/>
<CreateFolder Directory="INSTALLFOLDER">
<util:PermissionEx User="Users" ChangePermission="yes" GenericAll="yes"/>
</CreateFolder>
<util:XmlFile ElementPath ="root/Server/servername" File ="[INSTALLFORDER]config.xml" Sequence="1" Id ="SERVERNAME"
Action ="setValue" Value ="THIS VALUE IS NOT BEING SET" SelectionLanguage="XPath"/>
<util:XmlFile ElementPath ="root/Server/listenport" File ="[INSTALLFORDER]config.xml" Sequence="2" Id ="PORT"
Action ="setValue" Value ="THIS ONE EITHER"/>
</Component>
问题是没有错误并且所有路径都正确解析,但安装的文件仍然与原始文件相同。如果我尝试更改任何其他 XML 文件,它可以工作,但不是安装的那个。
我在网上发现了类似的问题,但没有解决我的问题。
XmlFile 是否可能只是在安装文件之前更改文件?还有什么会导致这样的问题?
解决方案
这似乎不是一个问题,而是两个问题。第一个是使用文件ID而不是路径,所以我替换了这个
File ="[INSTALLFORDER]config.xml"
有了这个:
File ="[#Config]"
但是还是不行,在安装过程中出现了安装程序找不到文件config.xml的错误,所以我把InstallExecuteSequence改成这样:
<InstallExecuteSequence>
<Custom Action="SchedXmlFile" After="InstallFiles" />
</InstallExecuteSequence>
UPD。这仍然无法正常工作。WIX 无法打开文件并出现错误:无法打开 XML 文件路径/config.xml,系统错误:-2147024786
错误似乎是 wix 由于某种原因无法识别 XML 文件中的 BOM:
<?xml version"1.0" encoding="UTF-8" ?>
所以我只是删除了它。
希望这可以帮助。
推荐阅读
- javascript - Google Apps 脚本 + Pipedrive API “JavaScript 运行时意外退出。” 错误
- sql - SSRS 将多值文本参数转换为 SQL 语法中的字符串
- sql - 将查询结果中的一列附加到 SQL 中的另一列
- angular - 没有重载与角度上的此调用相匹配
- java - 我该如何解决这个中断标签问题?
- sql - 如何在 GORM 中选择年份
- laravel - 自动登录上的 Laravel 事件监听器(记得我)?
- html - HTML 电子邮件免责声明不起作用(Office 365/Exchange Online)
- css - 如何将 div 放在其具有线性渐变作为其遮罩图像的父 div 上?
- php - Laravel View 不适合 dompdf 生成的 pdf