0
我有一个非常简单的Burn引导程序,它安装Visual Studio 2015 Redistributable,然后运行我们的应用程序安装程序(使用Wix创建)。在安装过程中,安装可再发行组件后,将自动弹出一个对话框,询问是否要取消(即,如果单击“取消”按钮,将发生同样的情况)。Wix Burn自动取消
我已经创建了几个其他的安装程序,它们使用相同的模式并从未见过这个问题。下面是一些识别信息,简化安装程序删除:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<?define ProductVersion = "1.0"?>
<?define Manufacturer = "XXXX, Inc."?>
<?if $(var.Platform) = x64 ?>
<?define VCRedistExe = "vc_redist.x64.exe"?>
<?else?>
<?define VCRedistExe = "vc_redist.x86.exe"?>
<?endif?>
<Bundle Name="$(var.ProductName)" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)" Condition="VersionNT >= v6.0">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
<bal:WixStandardBootstrapperApplication LicenseFile="$(var.AssetsPath)\License.rtf" SuppressOptionsUI="yes"/>
</BootstrapperApplicationRef>
<Chain>
<PackageGroupRef Id="redist"/>
<MsiPackage SourceFile="$(var.MsiPath)" DisplayInternalUI="no"/>
</Chain>
</Bundle>
<Fragment>
<PackageGroup Id="redist_vc140">
<ExePackage Id="vc140" DisplayName="Visual C++ 2015 Redistributable" Cache="no" PerMachine="yes" Permanent="yes" Vital="yes" Compressed="yes" SourceFile="resources/$(var.VCRedistExe)" InstallCommand="/install /quiet /norestart" Protocol="burn">
<ExitCode Value="3010" Behavior="forceReboot"/>
<!-- Ignore "Newer version installed" error -->
<ExitCode Value="1638" Behavior="success"/>
</ExePackage>
</PackageGroup>
</Fragment>
<Fragment>
<PackageGroup Id="redist">
<PackageGroupRef Id="redist_vc140"/>
</PackageGroup>
</Fragment>
</Wix>
如果用户在其机器上安装了新版本的可再发行组件,则需要处理ExitCode 1638。我不知道我们为什么要处理3010 - 它是从http://stackoverflow.com/questions/37396773/wix-burn-vcredist – Runt8
拉出删除处理错误3010修复它 - 我需要做更多的研究看看这是什么原因。标记为答案,虽然我们需要保持ExitCode 1638. – Runt8
我将编辑我的答案 –