我创建了一个C. WinForms应用程序,该应用程序依赖于.NET Framework 4.6.1版和GhostScript 9.2.1(32位Windows)。我为WinForms应用程序制作了一个简单的Windows Installer(.msi文件),但是GhostScript库拒绝安装。因此,我决定使用WiX引导程序制作捆绑安装程序。
在bootstrapper项目中,我打包了以前的GhostScript exe安装程序和简单的msi安装程序。我想我在引导程序的前几行中也照顾了.NET框架。
现在,在使用Bootstrap安装程序时,我仍然遇到问题。问题是安装跳过了msi安装程序。如何使Bootstrap安装成功完成?
这是引导程序项目的XML:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle Name="Bootstrapper1" Version="1.0.0.0" Manufacturer="POD" UpgradeCode="390cbc0b-980b-4f35-a9de-a11228f75b69">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<PayloadGroup Id="NetFx461RedistPayload">
<Payload Name="redist\NDP461-KB3102436-x86-x64-AllOS-ENU.exe"
SourceFile="C:\Users\Admin\Downloads\NDP461-KB3102436-x86-x64-AllOS-ENU.exe"/>
</PayloadGroup>
<Chain>
<!-- TODO: Define the list of chained packages. -->
<!-- <MsiPackage SourceFile="path\to\your.msi" /> -->
<PackageGroupRef Id="NetFx461Web"/>
<ExePackage Id="Ghostscript_32_bit_Version_9.2.1"
Cache="yes"
Compressed="yes"
PerMachine="yes"
Permanent="yes"
Vital="yes"
SourceFile="C:\Users\Admin\Downloads\gs921w32new.exe"
InstallCommand="/passive /norestart" />
<MsiPackage Id="POD_Measuring_Tool"
Cache="yes"
Compressed="yes"
Permanent="yes"
Vital="yes"
SourceFile="C:\Users\Admin\Documents\POD\Workspace Folder\c# projects\6lumber\toolPOD\Debug\toolPOD.msi" />
</Chain>
</Bundle>
</Wix>
我引用了WixBalExtension和WixNetFxExtension,而msi文件和ghostscript exe是从我的计算机中获取的。
答案 0 :(得分:0)
问题是安装跳过了msi安装程序。
这可能表明该产品已经安装。 MsiPackage
将通过检查注册表中的产品代码来自动检测是否已安装msi。
MsiPackage/@Permanent
属性还意味着在卸载Bootstrapper时不会删除您的产品-因此,请检查您是否手动删除了msi,并使用-l logfile.txt
开关进行日志记录帮助。