0

我将Combres与我的 MVC 3 RC 项目一起使用,当我将它部署到我的 Web 服务器时出现程序集绑定错误。

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

<%= Html.CombresLink("commonJs") %>

我的开发机器在 GAC 中有 MVC 1 和 2 程序集,所以在那里可以正常工作。Web 服务器在 GAC 中没有任何版本的 MVC,我正在对 MVC 3 程序集进行 bin 部署。我的项目引用了 System.Web.Mvc 的 3.0.0.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" newVersion="2.0.0.0" />
        </dependentAssembly>
        <dependentAssembly xmlns="">
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

我认为本节将告诉 Combres 使用 3.0.0.0 版本。为什么我的应用程序无法解析引用?

4

1 回答 1

2

我认为绑定重定向不会链接-您在某处引用了 1.0,并且您的配置告诉它加载不存在的 2.0。

您只需要一个将 oldVersion 设置为“1.0.0.0-2.0.0.0”的绑定重定向

于 2011-01-08T00:22:51.130 回答