How to create a directory in wix?

44,197

Solution 1

Define the folder like this:

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

The important part here is the CommonAppDataFolder Id, which is known by Windows installer. You can find the full list of known system folders in the Windows Installer Property Reference.

If you install any files to that folder, it will be created implicitly. If not, you can force it to be created by installing a component like this:

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

Solution 2

Under <Product> you can enter:

   <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>

And reference the component CreateProgramDataZZZ in your feature.

It can also be helpful to set permissions on the directory like this:

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

(in place of <CreateFolder />)

Share:
44,197
Prakash
Author by

Prakash

Updated on February 25, 2020

Comments

  • Prakash
    Prakash about 4 years

    My requirement is to create a directory in programdata/test/example. How can I do that in wix?