为什么 Combres 仍在寻找旧版本的 System.Web.Mvc?
我在 MVC 3 RC 项目中使用 Combres ,并将其部署到我的项目时出现程序集绑定错误网络服务器。
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。为什么我的应用程序无法解析引用?
I'm using Combres with my MVC 3 RC project and getting an an assembly binding error when I deploy it to my web server.
System.IO.FileLoadException
Could not load file or assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
<%= Html.CombresLink("commonJs") %>
My development machine has the MVC 1 and 2 assemblies in the GAC, so it works fine there. The web server doesn't have any version of MVC in the GAC, and I'm bin-deploying the MVC 3 assembly. My project references version 3.0.0.0 of System.Web.Mvc, and I have the following section in my 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>
I thought that this section would tell Combres to use version 3.0.0.0 instead. Why is my application failing to resolve the reference?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不认为绑定重定向会链接 - 您在某处引用了 1.0,并且您的配置告诉它加载不存在的 2.0。
您只需要一个绑定重定向,旧版本设置为“1.0.0.0-2.0.0.0”
I don't think the binding redirect will chain - you have a reference to 1.0 somewhere, and your config tells it to load 2.0, which does not exist.
You need just one binding redirect with oldVersion set to "1.0.0.0-2.0.0.0"