由于Newtown.Json的文件或程序集,Twitterizer抛出了文件加载异常

时间:2012-03-28 12:56:05

标签: c# asp.net twitter assemblies

请有人请解释下面的错误,并告诉我该怎么做才能解决它。它以前工作但我不确定究竟发生了什么变化以及我在哪里修复它。非常感谢您的帮助。

  

System.IO.FileLoadException:无法加载文件或程序集   'Newtonsoft.Json,版本= 4.0.4.0,文化=中立,   PublicKeyToken ='######'或其依赖项之一。位于   程序集的清单定义与程序集引用不匹配。   (来自HRESULT的异常:0x80131040)文件名:'Newtonsoft.Json,   Version = 4.0.4.0,Culture = neutral,PublicKeyToken = ######'--->   System.IO.FileLoadException:无法加载文件或程序集   'Newtonsoft.Json,Version = 4.0.2.0,Culture = neutral,   PublicKeyToken = ######'或其中一个依赖项。位于   程序集的清单定义与程序集引用不匹配。   (来自HRESULT的异常:0x80131040)文件名:'Newtonsoft.Json,   Version = 4.0.2.0,Culture = neutral,PublicKeyToken = ######'WRN:Assembly   绑定日志记录已关闭。启用程序集绑定失败   记录,设置注册表值   [HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)为1.注意:有   与程序集绑定失败相关的一些性能损失   日志记录。要关闭此功能,请删除注册表值   [HKLM \ SOFTWARE \微软\融合!EnableLog。在   Twitterizer.Core.TwitterCommand`1.ExecuteCommand()at   

的Twitterizer.TwitterStatus.Update(OAuthTokens令牌,字符串文字)      #

2 个答案:

答案 0 :(得分:2)

无法看到您的项目结构和问题的更详细描述我猜测您缺少运行时程序集。

您可以尝试:

  1. 直接向您网站的已部署项目添加引用 (对于缺少的dll,通常类似[yournamespace] .Web) - “Newtonsoft.Json”
  2. 您可以添加一个帖子构建步骤,将dll复制到已部署的bin文件夹中(或者您可以手动复制此文件)
  3. 这可能是由您的解决方案中引用NewtonSoft.Json(间接?)的其他项目之一引起的,但它不存在于已部署的解决方案bin文件夹中。在部署到生产/测试服务器之前,这通常不是问题。

    我希望这会有所帮助

答案 1 :(得分:0)

对我来说,问题是web.config中的以下代码行:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <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>
    </assemblyBinding>
  </runtime>

我将其修改为:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

删除重定向并且一切正常