如何安装与.net 4.0兼容的json.net版本



为了避免此处描述的问题:

无法加载类型';System.Runtime.CompilerServices.ExtensionAttribute';来自程序集';mscorlib

我正试图将我的项目构建为.net 4.0而不是4.5(在Visual Studio 2013中),但我遇到了以下错误:

  • 找不到类型或命名空间名称"Newtonsoft"(您是缺少using指令或程序集引用?)

    无法解析主引用"Newtonsoft.Json",因为它是根据".NETFramework,Version=v4.5"框架构建的。这是比当前目标框架".NETFramework,version=v4.0"更高的版本。

所以我想安装一个与.net 4.0兼容的json.net版本。我看到下载的NuGet包除了lib/4.5之外还包含一个lib/4.0目录,但我不知道如何让包管理器使用这个目录而不是4.5版本。

如何使用与.net 4.0兼容的json.net版本而不是仅与.net 4.5兼容的版本来构建我的项目解决方案?

从包管理器控制台运行update-package -reinstall

我发现这样做的方法是:

  1. 关闭VS解决方案
  2. 手动编辑解决方案中的所有packages.config文件,以指向您想要的版本(例如,我将它们更改为id="Newtonsoft.Json"version="6.0.3"targetFramework="net40")
  3. 转到磁盘上解决方案的软件包文件夹,然后删除其中的版本
  4. 从解决方案的输出路径中删除Newtonsoft.Json dll和xml
  5. 删除解决方案中使用json.net的项目的bin目录
  6. 在visualstudio中打开解决方案
  7. 打开包管理器(使用菜单:工具、NuGet包管理器、管理我版本VS中解决方案的NuGet包)
  8. 在包管理器对话框的顶部,它抱怨mssing包-单击"还原"
  9. 转到磁盘上解决方案的软件包文件夹,检查它是否安装了正确的版本
  10. 清理解决方案(否则输出路径中的Newtonsoft.Json dll和xml将不会被替换)
  11. 构建并检查输出路径中的DLL是否是正确的版本以及是否为正确的框架(NewtonSoft将.net版本放在旧版本的文件描述中)

如果这些步骤中的任何一个可以优化,我很想知道如何。。。

最新更新