.net Dll在转换为4.5.2后显示框架4.0

时间:2016-04-11 16:16:01

标签: c# .net-framework-version

我在这个主题中找到了对我的问题的部分答案:

Here on stackoverflow cannot change target framework...

在我的例子中,框架已成功转换为4.5.2,并且使用async和await放置一个方法,我确信它是框架4.5的一部分,该方法由exe引用成功运行图书馆。所以我可以假设该库实际上是使用框架4.5.2编译的。

但是,当在任何其他项目中引用时,库在其属性中显示它是在框架4.0下编译的。当调试器加载程序集时,它打印出它在框架4.0下编译... 那么谁是对的?我的代码执行框架4.5的方法或告诉库的字符串是在框架4.0上吗?

我已经检查了我的能力是否可能,如果我的安装中有任何.targets文件,是的,有两个,在msbuild-targets临时文件夹下,Microsoft.Common.targets和Microsoft.Csharp。目标,但我无法理解这些文件是否迫使编译器使用框架4.0。 主要是因为在这台机器上我直接在visual studio中编译。

我有几个使用编译4.5.2的组件库正常工作的解决方案。所以我真的不知道如何确保我的库在正确的框架下编译,并且库在其属性和加载时显示正确的框架。

如果有人知道如何实现这一目标, 提前谢谢你。

1 个答案:

答案 0 :(得分:4)

如果您的项目属性表明您的目标是.NET 4.5.2,那么它的构建将与.NET 4.5.2及更高版本一起使用。

也许您对CLR和Framework版本感到困惑。 .NET 4.x(任何)使用CLR(即公共语言运行时)4.0。

检查.NET Framework Versions and Dependencies以获取有关此主题的更多详细信息。