我有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="4.5.50709" OR Netfx4x64FullVersion="4.5.50709"))">
<ExitCode Value="1641" Behavior="forceReboot"/>
<ExitCode Value="3010" Behavior="forceReboot"/>
<ExitCode Value="0" Behavior="success"/>
</ExePackage>
</PackageGroup>
</Fragment>
.NET Framework安装完成后,Windows会显示其常用窗口,其中包含已打开应用程序的列表并要求用户强制重新启动。问题是这些列表也包含我的设置应用程序。当我的安装程序要求用户中止我自己并强行重启时,它看起来很糟糕。怎么可以解决?
重新启动安装后继续,但用户被迫阅读许可协议并再次接受 。有可能避免它吗?
答案 0 :(得分:3)
最后我们设法解决了这个问题:
退出代码很好。原因是错过了.NET安装程序命令行参数/norestart
。 Netfx45Xxx软件包组的InstallCommand
应如下所示:
InstallCommand =“/ norestart / q”
使用InstallCommand的这个值,在安装过程中,Windows不会要求强制重新启动,并允许安装自行执行重新启动。