应用程序尝试引用错误的程序集版本

时间:2016-10-14 06:31:50

标签: c# asp.net dll telerik

我在使用Telerik.Web.UI.dll version 2014.1.403.45的Windows Server 2012上运行了一个应用程序。 在最新部署期间,/ bin文件夹下的Telerik dll已更新为2015.1.401.40。 由于新的DLL,一些功能停止工作。 当我用旧版本替换服务器上的DLL时,我得到以下错误

Parser Error Message: Could not load file or assembly 'Telerik.Web.UI, Version=2015.1.401.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4' or one of its dependencies. 
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我也尝试过装配

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" culture="neutral"/>
        <bindingRedirect oldVersion="2015.1.401.40" newVersion="2014.1.403.45"/>

        <assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.1.0.4" newVersion="2.1.0.4"/>
      </dependentAssembly>
</assemblyBinding>

我仍然在犯同样的错误。

有没有办法处理这个问题而不再重新考虑整个代码?

2 个答案:

答案 0 :(得分:0)

我遇到了这种类型的问题,但在不同的情况下(在单元测试中)。为此,我清除了Bin。然后做了一个构建。然后问题解决了我。

答案 1 :(得分:0)

也许有办法,但我会重新部署。通过引用旧版本再次构建它。这是确保所有引用都指向同一个程序集的最安全的方法和最佳方法。

要完全确定正确的引用,请将dll设置为copy to localtrue,然后将其复制并替换为服务器上的那个。