我有一个ASP.net MVC应用程序正在使用由xamarin应用程序共享的可移植类库。当我的Web应用程序立即启动时,它会抛出此错误:
Method not found: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'.
我正在使用Structure Map MVC nuget包,它在我引用PCL库之前工作正常。
这行代码出错:
GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container);
我认为它与PCL类和MVC有关,它们都引用了JSON.net。有想法该怎么解决这个吗?我最终重建了我的机器,以确保只有这个版本在GAC中,而不是在其他地方。
任何想法
答案 0 :(得分:33)
在运行Scott Allen关于MVC4基础知识的伟大的Pluralsight课程的练习文件时,我遇到了同样的问题。使用预发布开关更新Newtonsoft.Json对我不起作用。您必须重新安装WebApi包。在程序包管理器控制台中使用以下命令:
uninstall-package Microsoft.AspNet.WebApi
uninstall-package Microsoft.AspNet.WebApi.webhost
uninstall-package Microsoft.AspNet.WebApi.core
uninstall-package Microsoft.AspNet.WebApi.Client
uninstall-package Newtonsoft.Json
install-package Microsoft.AspNet.WebApi
我首先想到,卸载Microsoft.AspNet.WebApi也会负责卸载webhost,核心和客户端 - 但这不起作用。然后,重新安装Microsoft.AspNet.WebApi,然后提供正确版本的Newtonsoft.Json作为依赖程序集。
之后它完美无缺。
希望这有帮助。
答案 1 :(得分:8)
我有同样的问题,最后通过运行
解决了Update-Package Newtonsoft.Json –IncludePrerelease
在程序包管理器控制台中。
我发现我的所有项目都在最新版本上,但在解决了Clean / ReBuild问题之后。