我有一个WIX包 - 使用Wix Toolset 3.7创建,在特定环境中奇怪地失败,并带有以下消息,
ExecXmlFile:错误0x80070005:无法加载XML文件: \ sharep001 \共享\ IIS \预\ EAT \网站\ CalculationService \ Web.config中
MSI(s)(70!FC)[11:15:37:491]:产品:EAT 1.0.0.0 - 错误25531。 无法打开XML文件 \ sharep001 \共享\ IIS \预\ EAT \网站\ CalculationService \ Web.config文件, 系统错误:-2147024891
错误25531.无法打开XML文件 \ sharep001 \共享\ IIS \预\ EAT \网站\ CalculationService \ Web.config文件, 系统错误:-2147024891
CustomAction ExecXmlFile返回实际的错误代码1603(请注意这一点 如果翻译发生在沙箱内,可能不是100%准确)
为什么我说这种行为很奇怪是因为,
为什么失败? - XML转换步骤仅在创建目录,删除文件,创建iis网站等后调用。因此,很难解释原因,似乎不是权限问题。
知道如何调试这个吗?
答案 0 :(得分:0)
奇怪的是路径不包含根驱动器规范。此文件是否可能与执行自定义操作的驱动器位于不同的驱动器上,因此找不到相对路径?我首先尝试提供文件的完整路径,看看是否解决了这个问题。
要进行调试,您可以使用硬核并获取正在使用的WiX工具集构建的源和pdbs .zip文件,然后使用MsiBreak environment variable附加到自定义操作.dll。从那里,您可以通过ExecXmlFile()
函数进行调试,以查看实际的返回结果。您还可以在错误发生之前/之后检查机器,以查看文件是否已锁定或无法访问。
答案 1 :(得分:0)
检查文件是否具有正确的UTF-8编码,我的错误是缺少BOM 无法打开XML文件,系统错误:-2147024786