为什么我的 WiX 生成的 msi 安装到错误的目录
Why is my WiX generated msi installing to the wrong directory
我正在尝试使用 Wix 命令行工具集编写批处理脚本,以从生成的 Heat 文件和自定义 .wxs 文件构建 .msi 文件。
下面的批处理脚本目前正在大部分正确地构建 .msi 文件。但是,当 运行 时,它会将二进制文件直接安装到 C: 驱动器,而不是将它们安装到自定义 wxs 文件中指定的安装文件夹。
谁能指出我遗漏了什么,因为我不知所措。
批处理脚本:
"%WIX%bin\heat" dir .\bin\ -srd -gg -pog:Binaries -cg AppBinComponentGroup -out .\AppHeatGen.wxs
"%WIX%bin\candle" .\*.wxs -o .\wixbuild\wixobj\
"%WIX%bin\light" -b .\bin\ .\wixbuild\wixobj\*.wixobj -o .\wixbuild\wixbin\AppInstaller.msi
自定义 wxs:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="App" Language="1033" Version="1.0.1.0">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MediaTemplate EmbedCab="yes" />
<Feature Id="ProductFeature" Title="App" Level="1">
<ComponentGroupRef Id="AppBinComponentGroup" />
</Feature>
</Product>
<Fragment>
<SetDirectory Id="APPLICATIONFOLDER" Value="C:\InstallDir" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APPLICATIONFOLDER">
<Directory Id="INSTALLFOLDER" Name="App" />
</Directory>
</Directory>
</Fragment>
</Wix>
在使用 wix 脚本尝试不同的东西后,我发现 heat 命令将所有组件目录值设置为 TARGETDIR。
解决方法是更新 heat 命令以包含一个 -dr 标签,其中包含所需的安装文件夹 ID 作为值。
"%WIX%bin\heat" dir .\bin\ -dr INSTALLFOLDER -srd -gg -pog:Binaries -cg AppBinComponentGroup -out .\AppHeatGen.wxs
我正在尝试使用 Wix 命令行工具集编写批处理脚本,以从生成的 Heat 文件和自定义 .wxs 文件构建 .msi 文件。
下面的批处理脚本目前正在大部分正确地构建 .msi 文件。但是,当 运行 时,它会将二进制文件直接安装到 C: 驱动器,而不是将它们安装到自定义 wxs 文件中指定的安装文件夹。
谁能指出我遗漏了什么,因为我不知所措。
批处理脚本:
"%WIX%bin\heat" dir .\bin\ -srd -gg -pog:Binaries -cg AppBinComponentGroup -out .\AppHeatGen.wxs
"%WIX%bin\candle" .\*.wxs -o .\wixbuild\wixobj\
"%WIX%bin\light" -b .\bin\ .\wixbuild\wixobj\*.wixobj -o .\wixbuild\wixbin\AppInstaller.msi
自定义 wxs:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="App" Language="1033" Version="1.0.1.0">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MediaTemplate EmbedCab="yes" />
<Feature Id="ProductFeature" Title="App" Level="1">
<ComponentGroupRef Id="AppBinComponentGroup" />
</Feature>
</Product>
<Fragment>
<SetDirectory Id="APPLICATIONFOLDER" Value="C:\InstallDir" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APPLICATIONFOLDER">
<Directory Id="INSTALLFOLDER" Name="App" />
</Directory>
</Directory>
</Fragment>
</Wix>
在使用 wix 脚本尝试不同的东西后,我发现 heat 命令将所有组件目录值设置为 TARGETDIR。
解决方法是更新 heat 命令以包含一个 -dr 标签,其中包含所需的安装文件夹 ID 作为值。
"%WIX%bin\heat" dir .\bin\ -dr INSTALLFOLDER -srd -gg -pog:Binaries -cg AppBinComponentGroup -out .\AppHeatGen.wxs