当前位置: 首页 > 工具软件 > WiX Toolset > 使用案例 >

使用WiX Toolset打包C#程序时,在安装目录预置文件夹和文件

冀弘济
2023-12-01

做项目的时候遇到需要在安装目录预置文件夹的需要,由于微软的打包工具实在是不好用,所以改用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教程 ^-^

 类似资料: