我正在使用引导程序来包含单个 MSI。如果我已经安装了捆绑包,然后通过启动捆绑包 EXE 重新安装,它可以检测到捆绑包已经安装。但是,如果我重建解决方案,即使没有更改单行代码,捆绑安装 EXE 也不会检测到捆绑已安装,而是会安装新版本(在程序和功能表中创建重复条目),但会跳过安装微星。如果我启动 MSI,它将检测到已安装相同的软件包。这会导致很大的问题,因为我每天都有构建工作来构建带有应用程序的安装程序,因此它无法检测是否安装了相同的版本。烧录配置很简单
<Bundle Name="ProductName" Version="1.0.0.0" Manufacturer="CompanyName"
UpgradeCode="28485414-29d0-4b3d-ba8c-33b5f993dfc3">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkSidebarLicense">
<bal:WixStandardBootstrapperApplication
LicenseUrl=""
LogoFile="..\Resources\Icon\small.png"
ShowVersion="yes"
SuppressOptionsUI="yes"
LogoSideFile="..\Resources\Icon\banner-side.bmp"
LocalizationFile="HyperlinkTheme.wxl"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage SourceFile="$(var.Installer.TargetPath)" Id="MsiEnUs" DisplayInternalUI="yes"/>
</Chain>
</Bundle>
MSI包定义为
<Product Id="*" Name="$(var.ProductDisplayName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.CompanyName)" UpgradeCode="c1b3c617-0af8-4df8-8dff-e893f7bbb30a">
<Package InstallerVersion="200" Compressed="yes" Platform="x64" InstallPrivileges="elevated" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
查看日志,可以发现 WixBundleInstalled 为 0。