我想将 .net 库从框架版本 4.5 降级到 .net 4.0。
我使用 nuget 安装了几个库:
- Microsoft.AspNet.WebApi.Client 及其依赖项:
- Newtonsoft.Json
- System.Net.Http(Microsoft .Net 4 HTTP 客户端库)
我执行以下操作:
在我的解决方案的每个项目的设置中,我将目标框架设置为 4.0。之后,我尝试重建我的解决方案,但当然没有成功,因为错误
找不到类型或 namespace 名称“Newtonsoft”(是否缺少 using 指令或程序集引用?)
, HTTP 客户端库也一样我使用 nuget ui 管理器删除了依赖项并尝试重新安装。但是出现错误
Could not install package 'Microsoft.AspNet.WebApi.Client 5.1.1'。您正在尝试将此包安装到以“.NETFramework,Version=v4.0”为目标的项目中,但是 包不包含任何与该框架兼容的程序集引用或内容文件。如需更多信息,请联系包作者。
我的问题是:我可以降级这个项目,还是应该用支持 .net 4 的库替换这些库并重写部分代码?
最佳答案
.NET 4.5 是 .NET 4.0 的就地升级,这意味着 CLR 是相同的,但添加了新的库以及错误修复和性能改进,两者都是 指向 .NET CLR 4。
在您的情况下,由于已经安装了 .NET 4.5,因此 4.5 更新完全取代了 .NET 4.0 运行时。
即使您将项目更改为 .NET 4.0,内部使用的库仍然指向 4.5,但仅限于 4.0 可用的库,但行为可能与您的不同 期望在纯 .NET 4 中。
因此,为了将您的项目从 4.5 降级到 4.0,我同意您的看法,您需要:
- 仅将 .NET 框架重新安装到 .NET 4(如果您不再需要 .NET 4.5)
- 将项目更改为指向 .NET 4
- 重写部分 .NET 4 不支持的代码 (例如,在您的情况下,Microsoft.AspNet.WebApi.Client 5.1.1 随 WebApi2 一起提供 .NET 4.5,需要降级为.NET 4提供的方式 )
关于c# - 将 .net 4.5 应用程序降级到 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22087830/