我已经问过this question yesterday - 它被一些没有花时间自己仔细阅读问题/评论的人关闭为“完全重复”! 所以,另一个尝试 - 也许它有时间接受一些有效的答案,然后再次因为一些无意义的原因而被关闭。
微软最近发布了一些针对.NET Framework的“更新”。不幸的是,我不知道如何找出安装的版本。框架版本保留在4.0.30319.239
。
感谢您的一些启发; - )
PS:将app.config中的supportedRuntime设置为Version = 4.0.2会使应用程序在启动时告诉我4.0.2未安装(在任何时候 - 所以必须有一个“真实”版本可以的地方实测值)。
答案 0 :(得分:13)
看看:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs
如果您已安装4.0.2,则存在以下附加节点:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.1,Profile=Client
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.2,Profile=Client
答案 1 :(得分:1)
这不应该有所作为。您没有定位框架的特定内部版本号,而是定位版本号,在本例中为4.0。你在做什么,你需要知道确切的内部版本号?
WTF - 为什么要使用buildcounters?!
你为什么不呢?它详细说明了框架的完全版本。通常,您不会发布带有“这是版本1.0.0.0”的软件,因为它可能会导致对更新/修补程序等版本的破坏。
仅仅针对.NET 4.0就足够了。
答案 2 :(得分:1)
我们试一试:
如果您知道某个类中的特殊函数/方法只存在于.NET 4.02中但不存在于.NET 4.0中,那么我会使用反射来例如get a list of all methods of a class或特定方法的签名。
如果只有内部(方法/属性)更改,您可以使用ILSpy搜索此类更改,然后再次使用反射来检查更改。
另一方面,我不确定某些安全限制是否会妨碍您进行反思。