我即将创建一个 MSI 包。在安装过程中(例如通过双击 MSI 启动),包含在 MSI 中的一些文件更深地存放在 c:\ProgramData(分别是 CommonAppDataFolder)下,例如 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 提示!现在允许用户/我的应用程序覆盖目标文件夹中的文件:)