wix 3.x - 无法加载xml文件

时间:2013-05-01 11:05:55

标签: wix windows-installer wixlib

我有一个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%准确)

为什么我说这种行为很奇怪是因为,

  1. 我可以在网络服务器的本地目录上安装相同的软件包,不会报告任何错误。
  2. 我可以在另一个UNC目录上安装相同的软件包,没有报告错误。
  3. 为什么失败? - XML转换步骤仅在创建目录,删除文件,创建iis网站等后调用。因此,很难解释原因,似乎不是权限问题。

    知道如何调试这个吗?

2 个答案:

答案 0 :(得分:0)

奇怪的是路径不包含根驱动器规范。此文件是否可能与执行自定义操作的驱动器位于不同的驱动器上,因此找不到相对路径?我首先尝试提供文件的完整路径,看看是否解决了这个问题。

要进行调试,您可以使用硬核并获取正在使用的WiX工具集构建的源和pdbs .zip文件,然后使用MsiBreak environment variable附加到自定义操作.dll。从那里,您可以通过ExecXmlFile()函数进行调试,以查看实际的返回结果。您还可以在错误发生之前/之后检查机器,以查看文件是否已锁定或无法访问。

祝你好运!

答案 1 :(得分:0)

检查文件是否具有正确的UTF-8编码,我的错误是缺少BOM 无法打开XML文件,系统错误:-2147024786