我正在尝试使用 WixStandardBootstrapperApplication 创建引导应用程序。除了处理重启之外,它可以很好地完成我需要它做的所有事情。
我需要安装一组EXE文件。只有第一个是 .NET 4.5,需要重新启动。我会延迟重新启动,但我不能,因为其他程序之一依赖于它。我尝试过使用退出代码来强制重新启动,但是当计算机重新启动时,引导程序每次都会卡在该退出代码处,并且我无法安装其他任何东西。当且仅当程序尚未重新启动时(或任何其他逻辑方式),是否有方法应用退出代码?
这就是我正在做的...
<ExePackage
Id = "NetFx45Redist"
Cache = "no"
Compressed = "yes"
PerMachine = "yes"
Permanent = "yes"
Vital = "yes"
InstallCommand = "/quiet /norestart"
SourceFile = "C:\Users\visibleEP\Documents\Visual Studio 2012\Projects\Bootstrapper1\VEP Deploy\Setup Files\dotNetFx45_Full_setup.exe"
DetectCondition = "(Netfx4FullVersion="4.5.50709") AND (NOT VersionNT64 OR (Netfx4x64FullVersion="4.5.50709"))"
InstallCondition = "(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion="4.5.50709" OR Netfx4x64FullVersion="4.5.50709"))">
<ExitCode Behavior = "forceReboot"/>
</ExePackage>
<ExePackage
SourceFile = "...\...\Setup Files\Encoder_en.exe"
InstallCommand = "/q"/>
<ExePackage
SourceFile = "...\...\Setup Files\vcredist_x86.exe"
InstallCommand = "/q /ACTION=Install"
RepairCommand = "/q ACTION=Repair /hideconsole" />
<ExePackage
SourceFile = "...\...\Setup Files\vcredist_x64.exe"
InstallCommand = "/q /ACTION=Install"
RepairCommand = "/q ACTION=Repair /hideconsole" />
Replace
<ExitCode Behavior="forceReboot"/>
With
<ExitCode Behavior="forceReboot" Value="1641" />
<ExitCode Behavior="forceReboot" Value="3010" />
1641和3010都是“需要重新启动才能完成安装。此消息表示成功。”
您的版本将所有退出代码视为相同,正如您所观察到的。看文档 http://msdn.microsoft.com/en-us/library/ee942965.aspx在那个安装程序上。幸运的是,退出代码已记录在案。
更新:
我添加了已知的成功代码和一个包罗万象的代码,这可能是error
如果您确信所有成功代码均已记录。
<ExitCode Behavior="success" Value="0" />
<ExitCode Behavior="error"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)