6

C ドライブにフォルダーを作成し、wix インストーラー プログラムでそのフォルダー内にいくつかのサブフォルダーを作成したいと考えています。ただし、これらのフォルダはインストールされたフォルダとは関係ありません。. プログラムを AServiceSetup フォルダー内にインストールしたいのですが、C ドライブ内に「PTLogFile」フォルダーを作成し、そのフォルダー内にいくつかのサブフォルダーを作成したいと考えています。私のコードを修正するのを手伝ってください.Followingは私のコードです

    <Directory Id="TARGETDIR" Name="SourceDir">

  <Directory Id="PTLogFile" Name="PTLogFile">
    <Directory Id="Backups" Name="Backups"/>
    <Directory Id="CommandLog" Name="CommandLog"/>
    <Directory Id="EventLog" Name="EventLog"/>
    <Directory Id="Responds" Name="Responds"/>
  </Directory>
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLFOLDER" Name="AServiceSetup">
      </Directory>
        </Directory>

    </Directory>
</Fragment>                 
4

3 に答える 3

11

返信ありがとうございます。上記の返信から答えを得たディレクトリ構造は次のとおりです

 <Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="LogFile" Name="LogFile">
    <Directory Id="Logs" Name="Logs">
      <Directory Id="Log1" Name="Log1"/>
      <Directory Id="Log2" Name="Log2"/>
      <Directory Id="Log3" Name="Log3"/>
      <Directory Id="Log4" Name="Log4"/>
    </Directory>
  </Directory>
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLFOLDER" Name="AServiceSetup">
    </Directory>
  </Directory>
</Directory>

そして次のようにコンポーネント

  <Component Id="CreateLogFolders" Guid="....."  Directory="LogFile" >
    <CreateFolder Directory="LogFile" />
    <CreateFolder Directory="Logs"/>
    <CreateFolder Directory="Log1"/>
   <CreateFolder Directory="Log2"/>
   <CreateFolder Directory="Log3"/>
   <CreateFolder Directory="Log4"/>
 </Component>

製品の機能内のこのコンポーネントリファレンスは次のとおりです

 <ComponentRef Id="CreateLogFolders"/>

最後に、次のように製品内にプロパティを追加します

 <Property Id="LogFile" Value="C:" />
于 2013-03-19T11:42:53.117 に答える
4

ディレクトリ構造を定義すると、インストーラはコンポーネントに必要なディレクトリのみを作成します。

簡単なオプションは、次のようなコンポーネントを追加することです。

<Component Id="CreateLogFolders" Directory="PTLogFile">
    <CreateFolder Directory="PTLogFile" />
    <CreateFolder Directory="Backups" />
    <CreateFolder Directory="CommandLog" />
    <CreateFolder Directory="EventLog" />
    <CreateFolder Directory="Responds" />
</Component>

機能の 1 つでこのコンポーネントを参照します。

于 2013-03-19T11:03:21.207 に答える
1

CreateFolder table<CreateFolder>へのレコードとなる各要素を独自のコンポーネントに配置することをお勧めします。そうでなければ、これがコンポーネントのルールにうまく準拠しているかどうかわかりません...

ディレクトリ構造は次のようにします。

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="PTLogFile" Name="PTLogFile" />
  <Directory Id="ProgramFilesFolder">
     <Directory Id="INSTALLFOLDER" Name="AServiceSetup">
  </Directory>
</Directory>

そして、次のような方法でコンポーネントを作成します。

<DirectoryRef Id="PTLogFile">
  <Directory Id="Backups">
    <Component Id="..." Guid="...">
      <CreateFolder />
    </Component>
  </Directory>
  <Directory Id="CommandLog">
    <Component Id="..." Guid="...">
      <CreateFolder />
    </Component>
  </Directory>
  <Directory Id="EventLog">
    <Component Id="..." Guid="...">
      <CreateFolder />
    </Component>
  </Directory>
  <Directory Id="Responds">
    <Component Id="..." Guid="...">
      <CreateFolder />
    </Component>
  </Directory>
</DirectoryRef>
于 2013-03-19T12:17:59.450 に答える