我正在以下列方式在WiX中创建文件夹结构:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="MyApp">
</Directory>
</Directory>
<Directory Id="CommonAppDataFolder">
<Directory Id="CONFIGFOLDER" Name="MyAppConfig">
<Directory Id="Configdir1" Name="Configdir1">
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="MyApp"/>
</Directory>
</Directory>
然后我将使用像这样的Component标签填充这些目录:
<ComponentGroup Id="ProductConfiguration" Directory="CONFIGFOLDER">
<Component Id="ConfigFile1" Guid="*">
<File Id="ConfigFile1.xml" Name="ConfigFile1.xml" Source="..\Configuration\ConfigFile1.xml" Vital="yes" KeyPath="yes" DiskId="1"/>
</Component>
<Component Id="ConfigFile2" Guid="*">
<File Id="ConfigFile2.xml" Name="ConfigFile2.xml" Source="..\Configuration\ConfigFile2.xml" Vital="yes" KeyPath="yes" DiskId="1"/>
</Component>
<Component Id="ConfigFile3" Guid="*">
<File Id="ConfigFile3.xml" Name="ConfigFile3.xml" Source="..\Configuration\ConfigFile3.xml" Vital="yes" KeyPath="yes" DiskId="1"/>
</Component>
</ComponentGroup>
我的问题是:WiX将配置目录(CommonAppDataFolder/MyAppConfig
)创建为只读文件夹。由于它充满了应用程序数据,因此用户需要能够在没有管理员权限的情况下修改其内容。我可以通过编程方式在CommonAppDataFolder
中创建其他文件夹,这些文件夹不需要管理员权限。
如何在WiX中设置我的文件夹的写权限?
答案 0 :(得分:4)
事实证明答案看起来像这样:
<Directory Id="MYFOLDER" Name="My folder name">
<Component Id="MyFolderComponent" Guid="*">
<CreateFolder Directory="MYFOLDER">
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
</Component>
</Directory>
答案 1 :(得分:1)
CommonAppDataFolder是一个每台机器商店,因此需要提升权限才能写入。如果您需要每用户存储,请改用AppDataFolder或LocalAppDataFolder目录属性。