.net Dll转4.5.2后显示framework 4.0

.net Dll shows framework 4.0 after being converted to 4.5.2

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

Here on Whosebug 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.targets,但我无法理解这些文件是否强制编译器使用框架 4.0。 主要是因为在本机上我直接编译在visual studio.

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

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

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

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

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