我正在研究一个用于自我托管Web API项目的项目。 有两个软件包1)Microsoft.AspNet.WebAPi.SelfHost 2)Microsoft.AspNet.WebApi。我遇到了一个问题,上面的软件包安装了两个不同版本的NewtonSoft.Json,它显示了编译时警告以及运行时异常。如果在Microsoft.AspNet.WebApi之前安装Microsoft.AspNet.WebAPi.SelfHost,则安装Newtonsoft.Json 6.0.0.0版。由前者安装,而由后者安装版本11.0.0.0则给出错误。但是,如果我安装Microsoft.AspNet.WebApi,则将安装版本11.0.0.0,而Microsoft.AspNet.WebAPi.SelfHost不会安装Newtonsoft.Json,但仍然出现以下错误
“无法加载文件或程序集'Newtonsoft.Json,版本= 6.0.0.0,文化=中性,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖关系之一。找到的程序集的清单定义>与程序集引用不匹配。(来自> HRESULT的异常:0x80131040)/nSystem.IO.FileLoadException“
尽管以下是我的web.config参考中的条目
“ culture =” neutral“ publicKeyToken =” 30ad4fe6b2a6aeed“ bindingRedirect oldVersion =“ 0.0.0.0-11.0.0.0” newVersion =“ 11.0.0.0” />“
当安装较新的版本时,我真的不明白为什么它指的是6.0.0.0版本。而且,如果我需要这两个版本,该如何引用每个版本而不引起编译器问题。
编辑:这里要提到的另一件事是,它仅在发布文件后发生错误,但是如果我以发布模式运行,则不会发生任何问题。
从头开始创建新文件夹后,我已经尝试过了。
编辑:我也尝试过检查GAC。 Newtonsoft.JSON在GAC中不可用。谁能说出如何检查第三方软件包(如Microsoft.AspNet.WebAPi.SelfHost
)的清单/配置文件。编辑:我还检查了链接线程中的解决方案,但这没有帮助。
编辑:我刚刚将Microsoft.Owin从2.0.2版本编辑到了版本4,但是奇怪的是,在发布并运行它之后仍然引用版本2。我检查了web.config和package.config,它们具有正确的程序集重定向以及正确的包装。所以我想还有其他地方没有更新。有人可以帮我吗?