将我的计算机升级到 mvc4 并尝试部署 mvc3 应用程序时出现依赖问题

将我的计算机升级到 mvc4 并尝试部署 mvc3 应用程序时出现依赖问题

我遇到了与此非常相似的问题: https://stackoverflow.com/questions/11023923/how-to-fix-this-mvc-website-error-could-not-load-file-or-assembly-system-web-h

完全相同的错误信息:

Could not load file or assembly 'System.Web.Helpers' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我知道这个问题与从 mvc3 升级到 mvc4 有关。我的应用程序是 mvc3,但我在计算机上安装了 mvc4,这导致了某种依赖性问题。要解决这个问题,我必须在服务器上安装 mvc4 才能使其工作,但使用 azure 很麻烦,因为我的所有 mvc4 安装都不会保留在服务器上。有没有办法解决这个问题,这样我就不必每次都安装 mvc4?或者让我的 azure 实例永久安装它。当我开始部署时,这真的很麻烦。

答案1

您实际上不必在 Azure VM 中安装 MVC 运行时,因为只要您在 Windows Azure 应用程序中包含了所有 MVCx 引用并将其设置为“将本地复制为真”,就不需要此步骤。将 MVCx 升级到 MVCy 时最常见的问题是,有时某些引用配置不正确,并且发生引用不匹配,可以通过再次查看所有 MVC 特定引用属性来检查它们是否来自 MVC4 并设置为“将本地复制”来避免这种情况。

为了检查您的 Windows Azure 应用程序中的 MVC4 引用是否配置正确,我建议:

  1. 创建“Hello World”Windows Azure MVC4 应用程序
  2. 比较您的应用程序和“hello world”应用程序之间的 MVC4 特定引用属性是否存在任何异常,如果发现,请修复它(这应该足够了)
  3. 将应用程序打包(CSPKG)并解压到包中,以确保两个包中的所有 MVC 特定引用在版本/大小上都是相同的(这是验证中的另一个设置,虽然不需要,但花几分钟就可以为你省去很多麻烦,所以你肯定可以做到)

相关内容