3

我正在通过以下方式在 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="..\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 中为我的文件夹设置写入权限?

4

2 回答 2

4

原来答案看起来像这样:

      <Directory Id="MYFOLDER" Name="My folder name">
        <Component Id="MyFolderComponent" Guid="*">
          <CreateFolder Directory="MYFOLDER">
            <Permission User="Everyone" GenericAll="yes" />
          </CreateFolder>
        </Component>
      </Directory>
于 2013-07-23T08:37:04.177 回答
1

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

于 2013-07-10T15:24:14.470 回答