最佳实践:使用Wix和Bundle处理不同操作系统上的prerequesitews
这更像是一个最佳实践问题。 在过去的几个月里,我们的设置遇到了几个问题。我们有一个标准的msi设置捆绑在一个使用Wix 3.10的引导程序设置中。基本上,我们使用捆绑包只是为了能够为设置创建智能用户wpf界面,但随着时间的推移,需求不断增长,因此我们在捆绑包中添加了prerequesites最佳实践:使用Wix和Bundle处理不同操作系统上的prerequesitews,wix,windows-installer,installation,bundle,Wix,Windows Installer,Installation,Bundle,这更像是一个最佳实践问题。 在过去的几个月里,我们的设置遇到了几个问题。我们有一个标准的msi设置捆绑在一个使用Wix 3.10的引导程序设置中。基本上,我们使用捆绑包只是为了能够为设置创建智能用户wpf界面,但随着时间的推移,需求不断增长,因此我们在捆绑包中添加了prerequesites 也依赖于操作系统的级联.Net依赖项 我们已将项目更新为.Net 4.6,因此我们在设置中添加了此框架,条件如下: <PackageGroup Id="Netfx4FullInternal">
<PackageGroup Id="Netfx4FullInternal">
<ExePackage Id="Netfx4FullInternal" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
DisplayName="Microsoft .NET Framework 4.6"
DetectCondition="(Netfx4FullVersion >= "393295") AND (NOT VersionNT64 OR (Netfx4x64FullVersion>="393295"))"
InstallCommand="/passive /norestart"
SourceFile="..\..\..\..\Common\PayloadBundle\NDP46-KB3045557-x86-x64-AllOS-ENU.exe">
</ExePackage>
</PackageGroup>
如果之前未安装其他KB,则无法在此系统上安装此KB 2919355。由于我们不得不接受存在多个系统的星座和配置,因此我们决定不在设置中添加所有这些PreReq–另一个原因是如果我们添加了,设置的预期增长。
当用户的系统是最新的时,大多数问题都可以解决,这就是我们在自述文件中所写的,但是我们应该如何处理这些问题呢
我会因为.net日志中提到的错误而失败。您不应该负责处理在每种操作系统/风格的Windows上安装KB修复程序所需的所有条件。正如您所发现的,每个KB都有一些必要条件,每个操作系统可以有几个KB的先决条件来安装特定的KB。这就是Windows Update存在的原因。如果最终用户没有外部互联网接入,他们需要让其IT部门为speicifc操作系统安装KB修复程序,以完成安装。我完全同意您的意见。现在我只向用户显示一个返回码和一条常见的故障消息,因为我不知道如何获取有关错误的详细信息。是否有可能从net.log文件中获取条目(请不要执行文件系统操作)?在ApplyComplete事件中,我得到安装出错的信息,但没有真正的错误消息。您能告诉我应该使用哪个事件来获取常见错误以及详细错误信息吗?是的,.net安装程序返回代码没有太大帮助,因为您实际上得到的是setup.exe的返回代码,它基本上只是提取.net包并从中运行正确的OS安装程序在那个包裹里。此setup.exe可以返回与.net安装程序完全不同的返回代码。您可能需要打开并阅读.net安装日志才能获得真正的错误代码。谢谢您的帮助。当网络出现故障时,我会显示一条消息,并显示一个链接,将客户指向microsoft。其他一切由用户决定。-)如果出现.net日志中提到的错误,我将失败。您不应该负责处理在每种操作系统/风格的Windows上安装KB修复程序所需的所有条件。正如您所发现的,每个KB都有一些必要条件,每个操作系统可以有几个KB的先决条件来安装特定的KB。这就是Windows Update存在的原因。如果最终用户没有外部互联网接入,他们需要让其IT部门为speicifc操作系统安装KB修复程序,以完成安装。我完全同意您的意见。现在我只向用户显示一个返回码和一条常见的故障消息,因为我不知道如何获取有关错误的详细信息。是否有可能从net.log文件中获取条目(请不要执行文件系统操作)?在ApplyComplete事件中,我得到安装出错的信息,但没有真正的错误消息。您能告诉我应该使用哪个事件来获取常见错误以及详细错误信息吗?是的,.net安装程序返回代码没有太大帮助,因为您实际上得到的是setup.exe的返回代码,它基本上只是提取.net包并从中运行正确的OS安装程序在那个包裹里。此setup.exe可以返回与.net安装程序完全不同的返回代码。您可能需要打开并阅读.net安装日志才能获得真正的错误代码。谢谢您的帮助。当网络出现故障时,我会显示一条消息,并显示一个链接,将客户指向microsoft。其他一切由用户决定。-)
1.Das Update zu KB2919355 muss installiert werden, bevor Sie dieses Produkt unter Windows 8.1 oder Windows Server 2012 R2 installieren.