我的 .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 时的外观。
