Razor 视图在升级到 Microsoft.AspNet.Mvc 版本 4.0.40804.0 后显示警告 CS170



我已经更改了所有web.config文件,以便引用4.0.40804.0。

我的 web.config 中有一个程序集绑定重定向

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
</dependentAssembly>    

有两个外部程序集是用以前版本的 System.Web.Mvc 构建的,它正在抱怨其中一个(一个包含服务器 HTML 帮助程序)。无法升级它们,因为它们不受我的控制。

不明白为什么绑定重定向对此不起作用。

(更新:我正在使用VS2015)

为了解决这个问题,我执行了以下步骤:

  1. 将 MVC 升级到最新版本 5.2.3.0
  2. 更改了所有版本的 web.config 并检查了程序集绑定重定向,如将 MVC4 升级到 MVC5 的步骤中所述
  3. 在扩展和更新中升级 ASP.NET 和 Web 工具以及Microsoft ASP.NET Web 框架和工具
  4. 已更改<项目工具版本 _x002E_..=">到 <项目工具版本 _x002E_..=">在 web app .csproj 和 web app .csproj.user file 中

如果你想坚持使用System.Web.Mvc 4.0.0.1,步骤1和3可能不是绝对必要的。在这种情况下,在步骤 2 中,您应该根据 mvc4 的版本更改版本号。

第 2 步也没有提到 Razor dll 或其他与 MVC 相关的 dll。如果它们已升级(例如System.Web.Razor 3.0),那么您还需要在所有web.config文件中更改这些dll的版本号。

最后,它更改了.csproj和.csproj.user文件中的ToolsVersion,使警告消失。.csproj.user文件特别棘手,因为在我们的例子中,它没有在源代码管理中签入,这意味着每个团队成员都必须为他们自己的.csproj.user文件重复它。

最新更新