1

我正在尝试打开一个.MSI 安装程序包文件来修改它。每当我尝试打开它时,它都会以只读模式打开。我在OrcaInstEd或直接通过代码打开文件时看到了这一点:

 `MsiOpenDatabase()` (ERROR_OPEN_FAILED with MSIDBOPEN_DIRECT or 
                      MSIDBOPEN_TRANSACT persistence modes).
  • 文件本身没有设置只读属性(其实也没有设置属性)
  • 我正在使用具有管理员组访问权限的帐户
  • 据我所知,没有其他进程打开文件
  • 没有安装正在进行或暂停
  • 我可以将文件复制到另一个位置,并在那里以读/写方式打开它。但是原版的,我摸不着

在此先感谢您的帮助。

4

4 回答 4

1

我的猜测是,这是由以下因素之一引起的:

  • 自定义 NTFS 访问权限- 为其安全描述符中的文件定义
  • 该文件可能被“阻止” ——通过Internet Explorer下载后带有特殊标志。

后者的解决方法是右键单击文件并选择属性,然后单击属性页面底部的取消阻止按钮,然后按确定。

自定义 NTFS 权限的解析以类似的方式通过进入文件属性页的安全选项卡来完成,但复制和粘贴文件并使用具有默认安全性的新副本更容易。

于 2014-07-01T20:55:51.037 回答
1

找到了。

@Glytzhkof,您几乎拥有它,但是有一个我不知道的细节,并且被遗漏了。这是一个位于我系统的防病毒程序“访问保护”文件夹中的包:一个文件系统挂钩,可阻止修改关键系统和 AV 文件。暂时关闭访问保护,文件是全开的。

幸运的是,我的一位队友对此有一些经验,并建议我尝试一下。答对了。

谢谢大家。

于 2014-07-02T17:46:21.490 回答
0

尝试关闭/杀死可能干扰的进程,例如:

  • 其他正在运行的 Install shield 实例
  • Installshield更新程序
  • Installshield许可服务
  • 杀毒软件
于 2019-05-26T09:20:31.960 回答
0

我所做的是首先创建 MSI 文件的备份,然后打开该备份。它对我有用

于 2015-07-31T10:40:10.483 回答