2016-10-26 51 views
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> 

回答

1

我相信你应该删除以下退出代码,因为它是没有必要安装软件包。可能与您的引导程序安装冲突。

 <ExitCode Value="3010" Behavior="forceReboot"/> 

希望这可以帮助你!

+0

如果用户在其机器上安装了新版本的可再发行组件,则需要处理ExitCode 1638。我不知道我们为什么要处理3010 - 它是从http://stackoverflow.com/questions/37396773/wix-burn-vcredist – Runt8

+1

拉出删除处理错误3010修复它 - 我需要做更多的研究看看这是什么原因。标记为答案,虽然我们需要保持ExitCode 1638. – Runt8

+0

我将编辑我的答案 –