安装引导程序如何检测是不是安装了先决条件?
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 子项的注册表检查(以上是关于安装引导程序如何检测是不是安装了先决条件?的主要内容,如果未能解决你的问题,请参考以下文章
从 Wix Bootstrapper Bundle 检查文件版本
如何为 Wix 刻录引导程序 exepackage 添加依赖文件夹