我的.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 for release key。
但是,微软发布了另一个更新版本4.5.2(密钥:379893),它取代了早期的注册表项。 因此,我的检查不允许将应用程序安装在4.5.2系统中。但是,因为它是4.5.1的就地更新,逻辑上它应该。我可以添加379893的额外发布版本。这将满足每个必要条件。
但是,如果Microsoft发布另一个就地更新,例如4.5.3,我的检查将再次失败。
由于它是一个安装程序项目,一旦它从发布门出来,我无法更改必备逻辑。
所以,我提出了一个问题,是否有一种强大的方法可以检测.net 4.5.1及其后续的所有更新,是否只能通过注册表完成?
我正在附加注册表的截图,将其更新为4.5.2。
答案 0 :(得分:1)
我发现注册表路径的存在直到Full,如屏幕截图所示,应该确保包含所有4.0的更新。 检查是否发布> 378675将确保包含大于4.5.1的所有更新。
从另一个类似的stackoverflow解决了与wix安装程序相关的问题。 Detect .NET Framework 4.5.1 using WiX
这个解决方案似乎有效。