繁体   English   中英

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

[英]How do I change the .NET framework version on a project?

我试图使用微软参考源,但遇到了问题。 根据他们的故障排除建议,我试图验证我使用的是正确的.NET框架版本。 然而ildasm显示了这个:

在此输入图像描述

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

在此输入图像描述

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

你得到的是准确的。 面向.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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM