Wix创建了一个只读的应用程序数据目录



我以以下方式在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>

我稍后会使用组件标签填充这些目录,如下所示:

<ComponentGroup Id="ProductConfiguration" Directory="CONFIGFOLDER">         
  <Component Id="ConfigFile1" Guid="*">
    <File Id="ConfigFile1.xml" Name="ConfigFile1.xml" Source="..ConfigurationConfigFile1.xml" Vital="yes" KeyPath="yes" DiskId="1"/>
  </Component>
  <Component Id="ConfigFile2" Guid="*">
    <File Id="ConfigFile2.xml" Name="ConfigFile2.xml" Source="..ConfigurationConfigFile2.xml" Vital="yes" KeyPath="yes" DiskId="1"/>
  </Component>
  <Component Id="ConfigFile3" Guid="*">
    <File Id="ConfigFile3.xml" Name="ConfigFile3.xml" Source="..ConfigurationConfigFile3.xml" Vital="yes" KeyPath="yes" DiskId="1"/>
  </Component>
</ComponentGroup>

我的问题是:WiX将配置目录(CommonAppDataFolder/MyAppConfig)创建为只读文件夹。由于它充满了应用程序数据,用户需要能够在没有管理权限的情况下修改其内容。我可以通过编程在CommonAppDataFolder中创建其他文件夹,这些文件夹不需要管理员权限。

如何在WiX中设置文件夹的写入权限?

结果是:

      <Directory Id="MYFOLDER" Name="My folder name">
        <Component Id="MyFolderComponent" Guid="*">
          <CreateFolder Directory="MYFOLDER">
            <Permission User="Everyone" GenericAll="yes" />
          </CreateFolder>
        </Component>
      </Directory>

CommonAppDataFolder是一个每台机器的存储,因此需要提升的权限才能写入。如果您想要一个每用户的存储,请使用AppDataFolder或LocalAppDataFolder目录属性。

最新更新