1

我有一个 WIX 包 - 使用 Wix Toolset 3.7 创建,奇怪的是在特定环境中失败并显示以下消息,

ExecXmlFile:错误 0x80070005:无法加载 XML 文件:\sharep001\share\IIS\pre\EAT\Website\CalculationService\Web.config

MSI (s) (70!FC) [11:15:37:491]:产品:EAT 1.0.0.0 -- 错误 25531。无法打开 XML 文件 \sharep001\share\IIS\pre\EAT\Website\CalculationService\ Web.config,系统错误:-2147024891

错误 25531。无法打开 XML 文件 \sharep001\share\IIS\pre\EAT\Website\CalculationService\Web.config,系统错误:-2147024891

CustomAction ExecXmlFile 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确)

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

  1. 我可以在网络服务器的本地目录上安装相同的包,没有报告错误。
  2. 我可以在另一个 UNC 目录上安装相同的包,没有报告错误。

为什么会失败?- 只有在创建目录、删除文件、创建 iis 网站等之后才会调用 XML 转换步骤。因此,很难解释为什么,这似乎不是权限问题。

知道如何调试吗?

4

2 回答 2

0

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

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

祝你好运!

于 2013-05-01T14:31:20.480 回答
0

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

于 2015-07-29T15:32:15.870 回答