【发布时间】:2019-08-09 08:17:56
【问题描述】:
我正在尝试制作一个引导安装程序来安装我的“setup.exe”,问题是我的“setup.exe”运行带有一些附加组件的“MyApp.msi”,我正在尝试将其设置为相同PackageGroup 在相同的 Id 下,但 setup.exe 仍然无法读取 'MyApp.msi' 包并给出参考错误,有什么建议吗?
这是一个简单的 Windows 安装程序,我也无法更改“MyApp”的安装方式。
<Chain>
<PackageGroupRef Id="MyAppInstaller"/>
</Chain>
<PackageGroup Id="MyAppInstaller">
<MsiPackage Name ="MyApp.msi"
SourceFile="$(var.SolutionDir)\Installers\MyApp.msi"
InstallCondition="!(loc.InstallCondition_$(var.Platform))"
Cache="yes"
Compressed="yes"
DisplayInternalUI ="no"/>
<ExePackage Id="setup"
DisplayName="setup"
Cache="yes"
Compressed="yes"
PerMachine="yes"
Name="setup.exe"
SourceFile="$(var.SolutionDir)\Installers\setup.exe"
InstallCondition="!(loc.InstallCondition_$(var.Platform))"
InstallCommand="/s"
UninstallCommand="/s"/>
</PackageGroup>
如果可能,我希望安装程序仅运行引用“MyApp.msi”的“setup.exe”,这两个文件都压缩在“Bootstrapper.exe”中。
【问题讨论】:
-
所以你启动的
setup.exe应该启动嵌入的setup.exe进而启动MyApp.msi乙>?对不起,你在做什么有点困惑。 -
@SteinÅsmul,我没有嵌入式 setup.exe,我只有一个可以运行 MyApp 的 setup.exe .msi 启动时,但有一些额外的配置,所以我只需要启动 setup.exe。问题是它在引导程序中启动时没有引用 MyApp.msi,正如我在线程中指定的那样。
-
您只想将 msi 作为 setup.exe 的一部分?也许您正在寻找作为 ExePackage 子级的 Payload 节点。您所需要的只是将 msi 与 setup.exe 放在同一目录中,对吗?
-
@VolkerG,我已经尝试过您关于为 ExePakcage 使用 Payload 节点的想法,无论我是否认为这是一个合乎逻辑的解决方案,它都会给我一个 Windows Installer 弹出窗口我 msiexec 命令使用。当我单击确定时,它会跳过 MyApp 安装并继续下一个安装程序。
标签: wix windows-installer bootstrapper