如何在wix中创建目录?

问题描述 投票:28回答:3

我的要求是在programdata / test / example中创建一个目录。我怎么能在wix中这样做?

wix installer windows-installer wix3.5
3个回答
60
投票

像这样定义文件夹:

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="CommonAppDataFolder">
        <Directory Id="TestFolder" Name="test">
            <Directory Id="ExampleFolder" Name="example" />
        </Directory>
    </Directory>
</Directory>

这里的重要部分是CommonAppDataFolder Id,Windows安装程序已知。您可以在Windows Installer Property Reference中找到已知系统文件夹的完整列表。

如果您将任何文件安装到该文件夹​​,则会隐式创建它。如果没有,您可以通过安装如下组件来强制创建它:

<Component Id="CreateTestFolder" Directory="ExampleFolder" Guid="PUT-RANDOM-GUID-HERE">
    <CreateFolder />
</Component>

13
投票

<Product>下,您可以输入:

   <DirectoryRef Id="TARGETDIR">
      <Directory Id="CommonAppDataFolder">
        <Directory Id="CommonAppXXXX" Name="test">
          <Directory Id="CommonAppYYYY" Name="example">
            <Component Id="CreateProgramDataZZZ" Guid="ABC-ETC">
              <CreateFolder />
            </Component>
          </Directory>
        </Directory>
      </Directory>
    </DirectoryRef>

并在你的CreateProgramDataZZZ中引用组件feature

在目录上设置权限也是有帮助的,如下所示:

<CreateFolder>
    <util:PermissionEx User="Users" GenericAll="yes" />
</CreateFolder>

(代替<CreateFolder />


0
投票

这将为你创建文件夹...

<Directory Id="DIR_ID" Name="DIR_NAME">
    <Component Guid="GUID" Id="id" KeyPath="no" NeverOverwrite="no" Permanent="no" Location="local">
        <CreateFolder>
            <util:PermissionEx CreateChild="yes" CreateFile="yes" Delete="yes" Read="yes" ReadAttributes="yes" ReadExtendedAttributes="yes" ReadPermission="yes" Traverse="yes" GenericRead="yes" GenericWrite="yes" User="Everyone" />
        </CreateFolder>
    </Component>
</Directory>
© www.soinside.com 2019 - 2024. All rights reserved.