刻录部署和 运行 包含其他 MSI 的批处理文件
burn deploy and run batch file containing other MSIs
我是 WIX 和 Burn 的新手。
我正在尝试安装一个 .bat 文件,然后 运行 它。 .bat 文件 运行 是其他 MSI,因此它不能 运行 来自安装项目。
我尝试了两种方法,都使用 Burn:
方法一
我试过将批处理文件添加为要刻录的有效载荷,但我不知道如何在目标机器上引用 .bat 文件...
<Bundle Name=...>
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
<Payload Id="QuickTimeSilentInstallBAT" Compressed="yes" SourceFile="C:\QT\QuickTimeSilentInstall.bat"
</BootstrapperApplicationRef>
<Chain>
<PackageGroupRef Id="NetFx45Redist"/>
<ExePackage Id="QuickTimeSilentInstallExePKG" Name="QuickTimeSilentInstall.bat" />
</Chain>
</Bundle>
所以这里我得到一个错误,ExePackage 名称无效,因为它包含“.”。特点。我正在尝试将 .bat 文件名放入 'name' 属性中,因为此处的文档 http://wixtoolset.org/documentation/manual/v3/xsd/wix/exepackage.html
将名称属性描述为 'The destination path and file name for this chain payload'
方法二
在刻录链中,首先安装一个单独的 MSI 来部署 .bat 文件....
然后使用 ExePackage 到 运行 该 .bat 文件。我的问题是我不知道如何确定目标机器上 .bat 文件的路径(不对其进行硬编码)——我尝试引用部署 .bat 的项目——但我找不到方法访问相关的 'Directory'
Context 我会提到这一点,以防万一有更好的方法来实现我的目标 - 我正在尝试将 QuickTime 静默安装到目标机器上。这涉及调用 2 个 msis 和一个 exe - 这就是我的 .bat 文件正在做的事情
方法 3:执行批处理文件在 Burn 中执行的操作。直接使用 MsiPackage
和 ExePackage
元素,而不是尝试 运行 批处理文件。 (无论如何,ExePackage
不能 运行 批处理文件。)
我是 WIX 和 Burn 的新手。 我正在尝试安装一个 .bat 文件,然后 运行 它。 .bat 文件 运行 是其他 MSI,因此它不能 运行 来自安装项目。
我尝试了两种方法,都使用 Burn:
方法一 我试过将批处理文件添加为要刻录的有效载荷,但我不知道如何在目标机器上引用 .bat 文件...
<Bundle Name=...>
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
<Payload Id="QuickTimeSilentInstallBAT" Compressed="yes" SourceFile="C:\QT\QuickTimeSilentInstall.bat"
</BootstrapperApplicationRef>
<Chain>
<PackageGroupRef Id="NetFx45Redist"/>
<ExePackage Id="QuickTimeSilentInstallExePKG" Name="QuickTimeSilentInstall.bat" />
</Chain>
</Bundle>
所以这里我得到一个错误,ExePackage 名称无效,因为它包含“.”。特点。我正在尝试将 .bat 文件名放入 'name' 属性中,因为此处的文档 http://wixtoolset.org/documentation/manual/v3/xsd/wix/exepackage.html 将名称属性描述为 'The destination path and file name for this chain payload'
方法二 在刻录链中,首先安装一个单独的 MSI 来部署 .bat 文件.... 然后使用 ExePackage 到 运行 该 .bat 文件。我的问题是我不知道如何确定目标机器上 .bat 文件的路径(不对其进行硬编码)——我尝试引用部署 .bat 的项目——但我找不到方法访问相关的 'Directory'
Context 我会提到这一点,以防万一有更好的方法来实现我的目标 - 我正在尝试将 QuickTime 静默安装到目标机器上。这涉及调用 2 个 msis 和一个 exe - 这就是我的 .bat 文件正在做的事情
方法 3:执行批处理文件在 Burn 中执行的操作。直接使用 MsiPackage
和 ExePackage
元素,而不是尝试 运行 批处理文件。 (无论如何,ExePackage
不能 运行 批处理文件。)