我想在C盘中创建一个文件夹,然后在wix安装程序中的该文件夹中创建一些子文件夹。但这些文件夹与已安装的文件夹无关。 。我的程序想要安装在AServiceSetup文件夹中......但我想在C盘内创建一个'PTLogFile'文件夹,然后想在该文件夹中创建一些子文件夹。请任何人帮我纠正我的代码。以下是我的代码
<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>
答案 0 :(得分: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:" />
答案 1 :(得分:4)
虽然您已经定义了目录结构,但安装程序只会创建组件所需的目录。
一个简单的选择是添加如下组件:
<Component Id="CreateLogFolders" Directory="PTLogFile">
<CreateFolder Directory="PTLogFile" />
<CreateFolder Directory="Backups" />
<CreateFolder Directory="CommandLog" />
<CreateFolder Directory="EventLog" />
<CreateFolder Directory="Responds" />
</Component>
并在您的某个功能中引用此组件。
答案 2 :(得分:1)
您宁愿将每个<CreateFolder>
元素放置在自己的组件中,这会在CreateFolder table中生成记录。否则,我不确定这是否符合component rules ...
保留目录结构如下:
<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>