InstallShield 无法复制到 ProgramData

InstallShield is not able to Copy to ProgramData

我的 InstallShield 有问题,它会磨我的齿轮。我不是专家,但我使用 IS 已经三年多了。这是场景:

我的程序在 C:\ProgramData\[CompanyName]\[Product Name]\ 下安装一个配置文件。当我安装更新时,它应该将旧的 .cfg 文件重命名为 .bak 文件,以便我们可以更新 。 cfg 文件也是。但是由于没有明显的原因,这不再起作用了。它在旧的 IS2012 上工作了很多年,但现在已经停止工作了。我尝试使用 InstallScript、MoveFile Table 和其他方法。没有任何效果。

但是当我尝试将文件重命名(并复制)到安装文件夹(在 ProgramFiles 下)时,它正在运行。但它在其他任何地方都行不通。

有人知道为什么我现在无法写入此文件夹吗?我很失望,没有更多的想法...

感谢您的帮助,抱歉我的英语不好。

您可能想尝试使用 MsiDiff 或类似工具来隔离 .msi 程序包构建之间发生的变化。详细日志中的错误可能非常重要。

Note: 1: 2727 2:

如果您查找 Windows Installer Error Messages 并搜索 2727,您会发现此错误表示

The directory entry '[2]' does not exist in the Directory table.

由于 [2] 对应于消息中的空值,这表明 table 的目录标识符错误地为空。您可以尝试一些常见的嫌疑人,例如 运行 验证,以确定问题所在。您提到了 MoveFile table,但它采用属性而不是目录,所以我不确定它是否会产生此消息。

如果这不足以帮助您找到并解决问题,您应该使用更多具体细节更新您的问题。