web-dev-qa-db-ja.com

wixでディレクトリを作成する方法は?

私の要件は、programdata/test/exampleにディレクトリを作成することです。 wixでこれを行うにはどうすればよいですか?

30
Prakash

次のようにフォルダーを定義します。

<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>
60
Wim Coenen

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

そして、CreateProgramDataZZZfeatureコンポーネントを参照します。

次のようにディレクトリにアクセス許可を設定することも役立ちます。

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

(代わりに <CreateFolder />

13
noelicus

これはあなたのためにフォルダを作成します...

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