Tom*_*Tom 5 asp.net-mvc json.net
我正在玩我的mvc项目.
我将一个名为SocialAuth.Net的软件包编入项目中,然后使用Newtonsoft.Json.dll 4.0.0.0(较旧版本)作为其依赖项之一.
然后因为我自己也需要Json.Net,我想要一个更新的版本,所以我Nugeted Json.NET,它有一个更新的版本4.5.0.0(更新).
然后问题发生了.在我的剃刀视图"ViewBag.Title = ...."中有红色下划线说:
警告1 c:\ users\admin\documents\visual studio 2010\Projects\WebApp\WebApp\Views\Home\Index.cshtml:ASP.NET运行时错误:无法加载文件或程序集'Newtonsoft.Json,Version = 4.5. 0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个依赖项.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
这是我的web.config的Json部分:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
所以,
我去了References,检查并发现Newtonsoft.Json是4.0.0.0(可能是随SocialAuth.Net一起提供的),我删除了它,并添加了我从Nuget获得的4.5.0.0参考.
我进入了WebApp/bin/debug /文件夹并删除了所有内容,然后重新构建了项目.
但是,一旦我重建了webapp,Newton.Json 4.0.0.0就会回到bin/debug /,无论我如何手动将它引用到新的Nuget 4.5.0.0.而同样的错误又回来了.我被卡住了.
你有没有想法如何处理这个DLL问题?谢谢.
编辑-----------------------------------
经过一番思考后,我明白这是因为首先将Json.Net(较新的4.5)链接起来,然后在构建时将较旧的Json.Net链接到它之后.所以较旧的人会覆盖较新的那个.
我不熟悉GAC安装,但知道我可以打开那些蠕虫并在那里安装2个版本,我不想这样做,因为这意味着我必须对我部署Web应用程序的每台机器都这样做.有没有办法玩web.config并解决这个问题?
您可以尝试使用以下命令安装 SocialAuth.Net 软件包\xe2\x80\x91IgnoreDependencies标志安装 SocialAuth.Net 包,然后手动安装依赖项并确保仅安装最新版本的 Json.Net 库。
然后在运行时,SocialAuth.Net 包将遵循程序集重定向并加载 Json.Net (v4.5),而不是旧版本。
\n| 归档时间: |
|
| 查看次数: |
8642 次 |
| 最近记录: |