Мое требование - создать каталог в programdata/test/example. Как я могу сделать это в wix?
Как создать каталог в wix?
Ответ 1
Определите папку следующим образом:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="CommonAppDataFolder">
<Directory Id="TestFolder" Name="test">
<Directory Id="ExampleFolder" Name="example" />
</Directory>
</Directory>
</Directory>
Важной частью здесь является идентификатор CommonAppDataFolder
, который известен установщику Windows. Полный список известных системных папок можно найти в Справочник свойств установщика Windows.
Если вы установите какие-либо файлы в эту папку, они будут созданы неявно. Если нет, вы можете заставить его создать, установив такой компонент:
<Component Id="CreateTestFolder" Directory="ExampleFolder" Guid="PUT-RANDOM-GUID-HERE">
<CreateFolder />
</Component>
Ответ 2
В <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 />
)