为什么WiX生成的MSI安装包未按照自定义wxs指定的路径安装?
问题根因
Heat工具默认生成的组件归属目录为代表系统盘根的TARGETDIR,你没有指定组件和你自定义的INSTALLFOLDER目录的关联,所以文件都被安装到了C盘根目录。
解决方案
修改你的批处理脚本中的Heat命令,添加-dr INSTALLFOLDER参数,指定生成的所有组件归属到你定义的安装目录下,修改后的命令如下:
"%WIX%bin\heat" dir .\bin\ -srd -gg -pog:Binaries -cg AppBinComponentGroup -dr INSTALLFOLDER -out .\AppHeatGen.wxs
修改后重新执行构建脚本即可,生成的安装包会将二进制文件安装到你指定的C:\InstallDir\App路径下。
可选优化
如果你不需要强制固定安装路径到C:\InstallDir,可以删除<SetDirectory Id="APPLICATIONFOLDER" Value="C:\InstallDir" />配置,将APPLICATIONFOLDER替换为WiX内置的ProgramFilesFolder,这样安装包会默认安装到系统Program Files目录,符合常规软件的安装习惯。
内容的提问来源于stack exchange,提问作者Mercury
相关产品推荐
相关产品推荐

