私の要件は、programdata/test/exampleにディレクトリを作成することです。 wixでこれを行うにはどうすればよいですか?
次のようにフォルダーを定義します。
<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>
下 <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 />
)
これはあなたのためにフォルダを作成します...
<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>