【问题标题】:.net Dll shows framework 4.0 after being converted to 4.5.2.net Dll 转换为 4.5.2 后显示框架 4.0
【发布时间】:2016-04-11 16:16:01
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# .net-framework-version


    【解决方案1】:

    如果您的项目属性表明您的目标是 .NET 4.5.2,那么它就是为与 .NET 4.5.2 及更高版本一起工作而构建的。

    也许您对 CLR 和 Framework 版本感到困惑。 .NET 4.x(任何)与 CLR(即 Common Language Runtime)4.0 一起使用。

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

    【讨论】:

    • 感谢您向我保证,我希望在库的属性窗格中找到该框架的 4.5.2 版本,并且我认为这些文件是正确的,因为使用 async await 的测试有效但之前向我的客户发布软件我更愿意确定。再次感谢您抽出宝贵时间回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2017-07-26
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多