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

时间:2013-07-10 09:05:44

标签: 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>

然后我将使用像这样的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中设置我的文件夹的写权限?

2 个答案:

答案 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目录属性。