我在我的MVC 3 RC项目中使用Combres,并在将其部署到我的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程序集。我的项目引用了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。为什么我的应用程序无法解析引用?
答案 0 :(得分:2)
我认为绑定重定向不会链 - 你在某个地方引用了1.0,而你的配置告诉它加载2.0,这是不存在的。
您只需要一个绑定重定向,oldVersion设置为“1.0.0.0-2.0.0.0”