1

我的 .net 应用程序是使用 4.5.1 构建的。目前我正在开发安装程序项目,并为此使用 symantec wise 脚本。我添加了一个必要条件以仅在安装 .net 4.5.1 时继续安装。

http://msdn.microsoft.com/en-us/library/hh925568%28v=vs.110%29.aspx中解释了检测此问题的注册表项。

如上所述,我在注册表路径中检测到 378758 或 378675 作为发布键。

但是,Microsoft 发布了另一个就地更新 4.5.2 (key:379893),它替换了早期的注册表项。所以我的检查不允许将应用程序安装在 4.5.2 的系统中。但是,由于它是 4.5.1 的就地更新,因此在逻辑上应该如此。我可以添加 379893 的附加发行版本。这将满足每个必要条件。

但是,如果 Microsoft 发布另一个就地更新,例如 4.5.3,我的检查将再次失败。

由于它是一个安装程序项目,因此一旦发布门,我就无法更改每个必要的逻辑。

所以,我来问我的问题,是否有一种可靠的方法来检测 .net 4.5.1 以及它后来的所有更新,并且只能通过注册表来完成吗?

我附上了注册表的屏幕截图,它在更新到 4.5.2 时的外观。 在此处输入图像描述

4

1 回答 1

1

我发现注册表路径的存在直到完整,如屏幕截图所示,应确保包含 4.0 的所有就地更新。检查版本是否 > 378675 将确保包含所有大于 4.5.1 的更新。

从另一个类似的 stackoverflow 中得到提示,解决了与 wix 安装程序相关的问题。 使用 WiX 检测 .NET Framework 4.5.1

这个解决方案似乎有效。

于 2014-06-26T11:42:39.020 回答