改变 WIX 生成的 .NET 3.5 引导程序的行为

Posted

技术标签:

【中文标题】改变 WIX 生成的 .NET 3.5 引导程序的行为【英文标题】:Changing behaviour of .NET 3.5 bootstrapper generated by WIX 【发布时间】:2012-10-18 16:47:05 【问题描述】:

我有以下问题: 我已经用 WIX 构建了一个安装程序。此安装程序包含 .NET Framework 3.5 的引导程序。第一次安装引导程序就像一个魅力。 .NET 框架 3.5 已安装。但例如在卸载并重新安装引导程序后无法识别 .NET Framework 3.5 已安装。

我发现了以下原因: 根据引导程序日志,它会检查此注册表值:

注册表项“HKLM\Software\Microsoft\NET”的读取值“安装” Framework Setup\NDP \v3.5\1033' 无法读取注册表值

它搜索 .NET 框架的本地化版本(1033=德语)

就我而言,我只安装了英文版框架(1031=English)

所以我只有 1031 作为子键。

所以我的问题是是否可以从

更改支票

'HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\1033' 到 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\'

还有一个名为“已安装”的值,对于引导程序,安装框架的哪种语言并不重要。

提前感谢您的帮助

【问题讨论】:

引导程序是如何创建的? 【参考方案1】:

如果您将 burn 用作引导程序,则应在 ExePackage 元素上使用 DetectCondition 属性,如果检测到已安装,则不会运行 .net 框架安装程序。

【讨论】:

以上是关于改变 WIX 生成的 .NET 3.5 引导程序的行为的主要内容,如果未能解决你的问题,请参考以下文章

WiX 引导程序的示例应用程序(检查 .NET Framework 和 SQL Server 2005/2008)

WiX 在具有 .NET 3.5 的机器上安装 .NET 4.5,但不在具有 .NET 4.0 的机器上

如何为 Wix Burn 安装程序包含完整的 .NET 先决条件

WiX 引导程序创建的安装程序未启动

如何从Wix托管引导程序或自定义操作中读取某些注册表项?

如何使用 WiX Burn 在 Windows 8 和 Windows Server 2012 上安装 .NET Framework 3.5?