安装引导程序如何检测是不是安装了先决条件?

Posted

技术标签:

【中文标题】安装引导程序如何检测是不是安装了先决条件?【英文标题】:How does the setup bootstrapper detect if prerequisites are installed?安装引导程序如何检测是否安装了先决条件? 【发布时间】:2010-04-08 07:07:42 【问题描述】:

试图解决this problem。

我想了解引导程序如何检测是否安装了先决条件(特别是 .NET 3.5)。

根据this reference,检测是否安装了.NET的一种方法是检查以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5

使用进程监视器,我检查了引导程序 (setup.exe) 完成的注册表查询,它没有显示对此注册表项的任何访问权限。

有人知道引导程序如何确定目标系统上是否安装了先决条件吗?

【问题讨论】:

【参考方案1】:

msbuild GenerateBootStrapper 包的必备包被定义为 XML 文件。这些 XML 文件的架构记录在 here 中。查看“InstallChecks”元素,了解可能的检查类型。

奇怪的是,我在 .NET 3.5 的先决条件包中找不到这样的安装检查。您可以在 Windows SDK 文件夹 (C:\Program Files\Microsoft SDKs\Windows) 中找到此包,以及其他预定义的引导程序包。

【讨论】:

由于某种原因,.Net 的安装检查似乎在包的本地化部分(参见 Bootstrapper\Packages\DotNetFX35SP1\en 下的 package.xml) 感谢 Wim 和 Damien,这解决了我们的问题。此问题发生在德语 Windows 7 安装上,并且构建机器在 SDK Bootstrapper 目录中只有 \en 子文件夹。 en 子文件夹包含一个 package.xml,其中包含对 .NET 注册表项的 \1033 子项的注册表检查()。由于某种原因,默认的德语 Windows 7 安装中不存在此功能。 在构建机器上调整 package.xml 解决了问题,但我仍然对问题的真正根源以及这是否是 Windows 7 中的错误感兴趣(是否应该存在 1033 子键即使在德语 Windows 7 上)或在引导程序中(检查不正确的键)

以上是关于安装引导程序如何检测是不是安装了先决条件?的主要内容,如果未能解决你的问题,请参考以下文章

从 Wix Bootstrapper Bundle 检查文件版本

ESXI系统引导盘

如何为 Wix 刻录引导程序 exepackage 添加依赖文件夹

有条件地停止/开始服务

MySql 5.7 安装程序无法检测到 VS 2013 可再发行组件

win 10安装Oracle过程中检测失败