0

我正在尝试对 MVC4 应用程序进行 bin 部署,但遇到了一个让我很困惑的问题。

我在 IIS6 中有一个网站条目,目前正在运行 MVC3 应用程序。我尝试部署的新应用程序设置为它下面的虚拟目录。

当您浏览到应用程序时,它会抛出此错误:

无法加载文件或程序集 'System.Web.Helpers, Version=1.0.0.0 , Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

新应用程序中的 bin 文件夹有这个文件:

System.Web.Helpers.dll版本 2.0.20710.0

该错误似乎表明应用程序正在尝试加载 1.0 版程序集,并获取 2.0 版文件导致它抛出清单不匹配。

我不明白为什么它会首先尝试加载 1.0 版文件。不过我可能是错的。

有没有人见过这个,或者可以提供任何解决问题的建议?

4

1 回答 1

0

添加这些绑定重定向解决了这个问题。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
</runtime>
于 2013-10-07T19:51:55.630 回答