如何在项目中更改.NET框架版本?

时间:2014-04-03 17:45:25

标签: c# .net debug-symbols

我正在尝试使用microsoft reference source,但遇到了问题。 根据他们对troubleshooting的建议,我试图验证我使用的是正确的.NET框架版本。 然而ildasm显示了这个:

enter image description here

但是,我确实改变了项目的目标框架,如下所示:

enter image description here

我是否需要在其他地方更改版本?

2 个答案:

答案 0 :(得分:6)

你得到的是准确的。面向.NET 4.5或4.5.1的项目仍使用CLR版本4.0.30319和核心框架程序集,如mscorlib v4.0.0.0

这很大程度上与.NET版本3.0,3.5和3.5SP1的内容重复,它们的目标是CLR版本2.0.50727和核心框架程序集v2.0.0.0。就像4.5和4.5.1一样,它们并不是新的并排版本。他们只是将新的程序集添加到现有集合中。

您仍然可以使用ildasm.exe告诉您选择了哪个目标,查看您在元数据中看到的System.Runtime.Versioning.TargetFrameworkAttribute属性。 CLR会对此进行检查,以确保您不会尝试在.NET 4.0或4.5安装上运行4.5.1。提供下载所需的版本。它看起来像这样(为了便于阅读而编辑):

 .custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = 
( 01 00 1C 2E 4E 45 54 46 72 61 6D 65 77 6F 72 6B   // ....NETFramework
  2C 56 65 72 73 69 6F 6E 3D 76 34 2E 35 2E 31 01   // ,Version=v4.5.1.
  00 54 0E 14 46 72 61 6D 65 77 6F 72 6B 44 69 73   // .T..FrameworkDis
  70 6C 61 79 4E 61 6D 65 14 2E 4E 45 54 20 46 72   // playName..NET Fr
  61 6D 65 77 6F 72 6B 20 34 2E 35 2E 31 )          // amework 4.5.1

答案 1 :(得分:0)

如果您尝试从Metadata版本确定.Net框架版本,那么它不是正确的方法。

元数据版本显示运行时版本或CLR版本。

  

.NET Framework 4,4.5和4.5.1包括CLR 4,但是.NET   Framework 2.0,3.0和3.5包括CLR 2.0。 (没有版本3   CLR。)

因此,对于.Net framework 4,4.5和4.5.1,您将看到相同的CLR版本,即V4.0.30319。您可能会看到this answer用于标识.Net框架版本。