【问题标题】:WIX - installer fails with Error 0x80070005: failed to set security info for objectWIX - 安装程序失败并出现错误 0x80070005:未能为对象设置安全信息
【发布时间】:2012-08-30 21:49:37
【问题描述】:

我为 WCF/Silverlight 应用程序创建了一个安装程序。在用户将安装路径更改为 C:\Program Files 之前一切正常。所有其他路径都可以正常工作。

未能为对象设置安全信息:C:\Program Files (x86)\

它在 Windows 2008 Server R2 上。即使用户选择 C:\Program Files\ 日志显示 C:\程序文件 (x86)\

安装日志的最后几行:

MSI (s) (90:08) [13:22:10:334]:LocalSQLConfigDataSource 在 远程上下文。 MSI (s) (90:08) [13:22:10:344]:执行操作: ActionStart(Name=ExecSecureObjects,,) 行动 13:22:10: 执行安全对象。 MSI (s) (90:08) [13:22:10:353]:执行操作: CustomActionSchedule(Action=ExecSecureObjects,ActionType=3073,Source=BinaryData,Target=ExecSecureObjects,CustomActionData=C:\Program 文件 (x86)\CreateFolderEveryone269221888) MSI (s) (90:B0) [13:22:10:358]:调用远程自定义操作。动态链接库: C:\Windows\Installer\MSIF980.tmp,入口点:ExecSecureObjects ExecSecureObjects:在中输入 ExecSecureObjects C:\Windows\Installer\MSIF980.tmp,版本 3.6.3005.0 ExecSecureObjects:保护对象:C:\Program Files (x86)\ 类型: CreateFolder 用户:每个人 ExecSecureObjects:错误 0x80070005: 未能为对象设置安全信息:C:\Program Files (x86)\

【问题讨论】:

    标签: wix


    【解决方案1】:

    32 位安装程序无法写入 64 位程序文件。这需要 64 位 MSI。

    为什么要更改 Program Files 文件夹的权限?这对操作系统来说非常具有侵入性。

    【讨论】:

    • 如何让安装程序同时为32位和64位?更改权限不是意图,我不确定安装程序为什么要尝试它。
    • MSI 不正式支持混合 32/64 位 msi。正式地,您必须创建 2 个 MSI 并使用引导程序将它们链接在一起。非正式地,有一些黑客可以颠覆设计。
    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多