WiX捆绑安装强制重启详细信息

时间:2013-11-18 12:26:49

标签: windows wix installer burn

我有Windows程序安装bootstrapper项目。有.NET Framework,Visual Studio C ++可再发行组件,设备驱动程序安装程序和我的应用程序安装程序链:

<Chain>
    <PackageGroupRef Id="Netfx45Xxx"/>

    <ExePackage Id="CppRedist"
        SourceFile="..\redist\vcredist_x86.exe" DetectCondition="VC2012CPPX86REDIST">
    </ExePackage>

    <MsiPackage Id="BlmInstall"
        SourceFile="..\bin\Release\BlmInstall.msi"></MsiPackage>
    <MsiPackage Id="UAUDriver" SourceFile="..\redist\setup.msi"></MsiPackage>
</Chain>

我希望系统在.NET安装后重新启动,然后在重启后自动继续安装。 DotNET包组定义为:

<Fragment>
    <PackageGroup Id="Netfx45Xxx">
        <ExePackage
            Id="Netfx45Xxx"
            Cache="no" Compressed="no"
            PerMachine="yes"
            Permanent="yes"
            Vital="yes" InstallCommand="/q"
            SourceFile="..\redist\dotnetfx45_full_x86_x64.exe"
            DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=225702"
            DetectCondition="NETFRAMEWORK40"
            InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))">

            <ExitCode Value="1641" Behavior="forceReboot"/>
            <ExitCode Value="3010" Behavior="forceReboot"/>
            <ExitCode Value="0"    Behavior="success"/>
        </ExePackage>
    </PackageGroup>
  </Fragment>
  1. .NET Framework安装完成后,Windows会显示其常用窗口,其中包含已打开应用程序的列表并要求用户强制重新启动。问题是这些列表也包含我的设置应用程序。当我的安装程序要求用户中止我自己并强行重启时,它看起来很糟糕。怎么可以解决?

  2. 重新启动安装后继续,但用户被迫阅读许可协议并再次接受 。有可能避免它吗?

1 个答案:

答案 0 :(得分:3)

最后我们设法解决了这个问题:

  1. 退出代码很好。原因是错过了.NET安装程序命令行参数/norestart。 Netfx45Xxx软件包组的InstallCommand应如下所示:

    InstallCommand =“/ norestart / q”

  2. 使用InstallCommand的这个值,在安装过程中,Windows不会要求强制重新启动,并允许安装自行执行重新启动。

    1. 因此,正如我上面所解释的那样,Windows强制重启似乎阻碍了重启执行的安装。由于它异常完成,我建议添加一个特殊的Windows注册表项,以便在系统重启后继续安装应用程序。