安装的 nuget 包依赖于发布后的旧版本 System.Web.Mvc.dll

Installed nuget package depends on older version of System.Web.Mvc.dll after Publish

我有一个使用 Visual Studio 2010 开发的 MVC4 应用程序。 项目在 IIS Express 上运行良好。 将它发布到 IIS8 并尝试访问它时,出现异常,提示无法加载 System.Web.Mvc, Version=3.0.0.0 程序集。 调用程序集是 AttributeRouting.Web.Mvc,这是我使用的 NuGet 包。

据我了解,我的项目引用了 System.Web.Mvc 的 4.0.0.0 版本,而我使用的包依赖于 3.0.0.0.

  1. 如果Visual Studio/IIS Express可以运行完美,怎么发布的版本有这个问题?

  2. 今天才看了很多,还是想不通。 这是 Binding Redirect 的用途吗?

我有点迷路了,感觉自己真的没有任何方向。 欢迎任何建议。

提前致谢, 害羞。

已解决:
除了第 2 版和第 4 版之外,我只是(其实并没有那么简单)安装了 MVC3。
问题消失,无需任何进一步更改。

解决方法: 从 Microsoft's website.
下载并安装 MVC3 如果安装失败:

  1. 提取安装文件。
  2. 在编辑器中打开 ParameterInfo.Xml。
  3. 完全删除引用 vs10-kb2483190 的 <Exe> 标签 文件.
  4. 运行 重新设置。

非常感谢@Augusto 的帮助。

希望有一天这对某人有所帮助:)