做项目的时候遇到需要在安装目录预置文件夹的需要,由于微软的打包工具实在是不好用,所以改用WiX Toolset打包安装包
基础教程请参考Wix Toolset的官方文档(Documentation (wixtoolset.org))和【C#】WixToolset快速入门教程_catshitone的专栏-CSDN博客_wix教程,官方文档看几分钟点开一大堆页面,无法理解为什么要把文档弄成那样=。=,微软的文档也是那样,可能国外流行吧~
进入正题:
直接上wxs代码:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="YourProgramName">
<Directory Id="Folder1" Name="Folder1" />
<Directory Id="Folder2" Name="Folder2" />
</Directory>
</Directory>
</Directory>
</Fragment>
如代码所示,直接在INSTALLFOLDER标签里添加文件夹标签,Id是唯一的Id,可以随便起,Name是文件夹的名称。
如果需要在预置的文件夹里添加文件:
<Fragment>
<DirectoryRef Id="Folder1">
<Component Id="file1" Guid="xxxxx-xxxxx-xxxxx">
<File Id="file1.xxx" Source="$(var.YourProgramName.TargetDir)/Folder1/file1.xxx" />
</Component>
</DirectoryRef>
<DirectoryRef Id="Folder2">
<Component Id="file2" Guid="xxxxx-xxxxx-xxxxx">
<File Id="file2.xxx" Source="$(var.YourProgramName.TargetDir)/Folder2/file2.xxx" />
</Component>
</DirectoryRef>
</Fragment>
当然不要忘记在Product标签内的Featrue标签里加上预置文件夹里Component的Id,否则打包的时候不会自动添加预置文件夹:
<Feature Id="ProductFeature" Title="xxxxxx" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentRef Id="file1"/>
<ComponentRef Id="file2"/>
</Feature>
如果觉得看不懂,请先学习Wix Toolset的官方文档(Documentation (wixtoolset.org))和【C#】WixToolset快速入门教程_catshitone的专栏-CSDN博客_wix教程 ^-^