我已经部署了MVC 4.5网站here
但是,当我在部署后在浏览器中查看该网站时,我必须关闭自定义错误以查看以下错误:
Exception Details: System.IO.FileNotFoundException: Could not load file or assembly
'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or
one of its dependencies. The system cannot find the file specified.
我确保我的References文件夹中的DLL的CopyLocal设置为True。成功部署需要进行哪些其他更改?
答案 0 :(得分:2)
我今天遇到同样的问题而且我不完全确定我做了什么来解决它。因此,我将尝试详细介绍我的流程。
因此,我认为唯一可以给出的逻辑(ish)答案是删除您的Azure网站,重新创建它,然后重新发布。
我希望这有助于某人。
答案 1 :(得分:2)
我通过将程序集版本从0.0.0.0-6.0.0.0重定向到6.0.0.0来修复此问题
在Web.config中添加dependencytentAssembly:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- Add these 4 lines to Web.config, under runtime/assemblyBinding -->
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<!-- End of copy -->
</assemblyBinding>
</runtime>
<configuration>
您也可以在其中找到其他dependentAssemblies,例如System.Web.Mvc,WebGrease。
最新版本的Newtonsoft.Json现在是6.0.3。您可能需要在以后增加6.0.0.0。通过查看解决方案资源管理器中的版本查找当前的最新版本。参考文献 - &gt; Newton.Json - &gt; (右键单击 - &gt;属性) - &gt;属性视图中的版本
答案 2 :(得分:0)
如果你确定CopyLocal是真的,那么唯一的另一种可能性是你有一个项目引用到不同于你的packages.config中列出的程序集版本。确保DLL版本与packages.config中的版本匹配。