我正在设计一个 WIX 3.6 安装程序项目,在安装过程中我们需要授予用户对安装文件夹(INSTALLDIR)的创建文件权限,特别是对于默认安装文件夹 Program Files,用户通常无法在安装中创建文件. 我们经历了一些失败)。我想这可以通过使用 CreateFile 属性设置 Permission 元素来实现。但是,INSTALLDIR 是一个目录,只有 CreateFolder、File、FileShare、Registry、ServiceInstall 这样的元素可以有权限元素。那么谁能告诉我该怎么做?我的目录声明是这样的:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id='MANUFACTUREFOLDER' Name='$(var.ManufacturerName)'>
<Directory Id="INSTALLDIR" Name="$(var.ProductName)">
谢谢!
更新:现在我设法创建了一个文件(不是部署的文件。而是基于一个部署的文件生成的文件,它是在提交阶段的自定义操作中生成的)。但是,我现在在删除刚才描述的部署文件时遇到了问题(因为其他文件生成成功后就没有用了)。当安装文件夹为 Program Files 时,我无法在自定义操作中将其删除。它说访问被拒绝。
另一件事是,我真的不明白 CreateFolder 元素的用途。如果它的目的是创建一个文件夹,顾名思义,嵌套目录不做同样的事情,就像在我的示例代码中一样?而且我认为在那里描述文件夹结构更清楚,因为将 Component 元素(其中将驻留 CreateFolder 元素)和 Directory 元素分开是很常见的。组件将只使用 DirectoryReference 来引用正确的目录。其次,多个组件驻留在同一个目录中也很常见。因此,如果我将 CreateFolder 添加到其中一个组件中,并将默认目录作为这些组件的公共父目录,它甚至意味着什么?这样的结构真的不直观。