【发布时间】:2015-10-14 14:58:14
【问题描述】:
我有一个针对 .NET Framework 4.0 编写的应用程序。 在其中一个基础项目中,我必须添加一个在 .NET 4.5 中完成的引用。所以,为了构建这个项目,我不得不将它的目标框架切换到 4.5。
现在,VS 抱怨引用此基础项目的应用程序中的每个项目的问题。
有没有一种方法可以让这个基础项目以框架 4.5 为目标,而无需更改所有引用它的项目。
我可以混合使用这两个框架并从 .NET 4 项目调用到 .NET 4.5 项目吗?
最好的解决方案是,如果我可以在基础项目中使用 .NET 4.5 中内置的新外部引用(这会导致所有这些麻烦),而无需将基础项目 Target 更改为 .NET 4.5。这可能吗?
基本上我想使用这个为 4.5 构建的参考,而不必更改整个应用程序目标框架。
【问题讨论】:
-
为什么不全部改变呢? .NET 4.5 是 4.0 的二进制替换。这意味着只需安装运行时即可将 4.0 二进制文件替换为 4.5。当您最终在 4.5 上运行时,没有理由混合版本。您可以使用Target Framework Migrator 之类的工具一次性升级所有项目
-
另一种选择是保持在 4.0 并使用 Bcl.Async、Bcl.HttpClient 等兼容包。这不会给您带来任何运行时优势,例如后台垃圾回收
-
这将导致比必须处理升级问题更多的问题。我现在正在采取升级路径。我只是希望可能有一个简单的门外方法来做到这一点。再次感谢您提供的所有宝贵答案。