【发布时间】:2014-03-20 12:22:28
【问题描述】:
我即将创建一个 MSI 包。 在安装过程中(例如通过双击 MSI 启动)MSI 中包含的一些文件被存放在 c:\ c:\ProgramData\myCompany\myApplication。 稍后当用户运行已安装的应用程序时,应用程序可能需要修改这些文件。 问题是正在运行的应用程序和用户都没有。通过 Windows 资源管理器有权修改在安装期间创建的 c:\ProgramData\myCompany\myApplication 下的任何文件。 这些文件没有只读属性集。
现在对我来说奇怪的是:如果我通过 msiexec /q /i 安装 MSI,那么我对这些文件具有写入权限。
我的 MSI 是用 WiX 创建的,我的操作系统是 Win 7,用户是管理员组的成员。
谁能告诉我为什么会这样,以及如何在不使用 /q /i 的情况下获得对这些文件的写入权限?
谢谢 一月
编辑 2014-03-24:该死。我错过了在我的元素上指定 InstallPrivileges 属性,我只是不知道。 将其设置为“受限”在安装到 ProgramData 时不会显示 UAC 提示!现在允许用户/我的应用程序覆盖目标文件夹中的文件:)
【问题讨论】:
-
您在提供服务文件吗?你在安装过程中移动文件吗?这是通过自定义操作完成的吗?
-
告诉你什么,你应该能够通过让你的应用程序(而不是安装程序)将这些文件复制到 CommonAppDataFolder 中的正确位置来解决这个问题。这将绕过所有模拟,即使对于有限的用户也应该可以正常工作 - 或者我认为。
标签: wix windows-installer programdata