如何检查应用程序的.NET版本?

如何检查应用程序的.NET版本?,.net,version,.net,Version,除了在只有.NET Framework 3.5版的计算机上运行外,我如何检查.NET应用程序的版本?我不确定是否理解您的问题 如果要检查从.NET应用程序安装的.NET framework版本,请检查以下内容: 据我所知,这在代码中是不可能的。dll不针对特定的框架版本,而是在特定的CLR下运行并使用特定的程序集 例如,您可以将3.0应用程序定义为在2.0 CLR下运行的应用程序,并使用.NET 3.0发布时发布的程序集。您还需要检查它是否没有引用在发布3.5或4.0时发布的任何程序集,即使这些

除了在只有.NET Framework 3.5版的计算机上运行外,我如何检查.NET应用程序的版本?

我不确定是否理解您的问题

如果要检查从.NET应用程序安装的.NET framework版本,请检查以下内容:


据我所知,这在代码中是不可能的。dll不针对特定的框架版本,而是在特定的CLR下运行并使用特定的程序集

例如,您可以将3.0应用程序定义为在2.0 CLR下运行的应用程序,并使用.NET 3.0发布时发布的程序集。您还需要检查它是否没有引用在发布3.5或4.0时发布的任何程序集,即使这些较新的程序集可能只引用在版本2.0中发布的其他程序集


实际上,实现这一点的唯一方法是列出使用特定框架版本发布的所有程序集,并使用此列表对正在测试的程序集进行交叉检查。

.NET framework版本控制在.NET 2.0之后出现。应用程序以CLR版本为目标,它使用EXE的程序集元数据执行此操作。目前有四种,1.0、1.1、2.0和4.0。不包括Compact Framework、Silverlight和Micro Framework使用的特殊框架

框架版本2.0、2.0SP1、2.0SP2、3.0、3.5和3.5SP1都以相同的CLR版本2.0.50727为目标。这些版本之间的不同之处在于,它们在更高版本中提供了额外的程序集。支持WPF、WCF和LINQ等特性的类型。它们是添加剂,只是在已经相当坚实的东西上添加了更多的好东西。您永远不必猜测程序需要什么版本的框架,只需在“解决方案资源管理器”窗口中打开“引用”节点并查看程序集版本号即可。或者在您的项目中设置targetframework属性,然后继续工作,直到编译器停止抱怨为止

回到你最初的问题:你给自己的.NET应用程序的版本完全取决于你。编辑AssemblyInfo.cs文件中的[AssemblyVersion]属性。

将告诉您生成程序集时使用的框架版本。打开Reflector中的每个程序集,打开引用并检查mscorlib和其他系统程序集的版本


若反射器能做到这一点,那个么至少在原则上,它必须能够在代码中计算出来。它看起来像Reflector用来检查代码。

如果您在Visual Studio中打开应用程序:

右键单击应用程序项目 选择“属性” 选择“应用程序”
你的意思是如何检测应用程序所针对的.NET framework版本?他想知道你如何确定应用程序所基于或依赖的.NET framework版本。那么?接受皮埃尔·林克。IL disasm与VS一起提供,可接受的解决方案非常容易使用。Reflector将告诉您正在使用哪个主CLR版本,以及当前正在加载的程序集的版本,但这有点不同于根据这些版本构建的程序,并且至少需要这些版本。Idk about Cecil安装起来很麻烦,但我发现在寻找NETFramework时,.exe中的版本字符串有时会给你一个更准确的大概值,尽管我猜Y目标版本最终使用X版本DLL还是可以的