c# - 将 .net 4.5 应用程序降级到 4.0

标签 c# .net

我想将 .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,我同意您的看法,您需要:

  1. 仅将 .NET 框架重新安装到 .NET 4(如果您不再需要 .NET 4.5)
  2. 将项目更改为指向 .NET 4
  3. 重写部分 .NET 4 不支持的代码 (例如,在您的情况下,Microsoft.AspNet.WebApi.Client 5.1.1 随 WebApi2 一起提供 .NET 4.5,需要降级为.NET 4提供的方式 )

HanselmanRick已经解释的很好了。

关于c# - 将 .net 4.5 应用程序降级到 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22087830/

相关文章:

c# - 将 C# 代码转换为 PowerShell

c# - 在生产环境中使用 StackTrace 类获取调用方法信息

c# - 在 Spring.Net 中使用属性作为工厂方法

.net - .Net图表控件自动滚动/禁用自动缩放

c# - 简单注入(inject)器 - 将 url 值注入(inject)到服务构造函数中

c# - 绑定(bind)到详细信息 View 控件中的复选框时将 DBNull 转换为 bool 值

c# - 我可以不使用 break; 来使用 switch 语句吗?

c# - 从盘符获取驱动器型号

c# - 在 C# 中压缩和解压缩文件夹

c# - MVC3 DropDownList + ViewBag 问题