为什么 Combres 仍在寻找旧版本的 System.Web.Mvc?

发布于 2024-10-10 17:57:58 字数 1288 浏览 5 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

宫墨修音 2024-10-17 17:57:58

我不认为绑定重定向会链接 - 您在某处引用了 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"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文