“System.Web.Mvc.MvcWebRazorHostFactory”types的expression式不能用于返回types“System.Web.WebPages.Razor.WebRazorHostFactory”

当我尝试运行一个我接pipe的项目时,出现这个错误。

我假设我的web.config中有一个问题,但我不知道要寻找什么。

“System.Web.Mvc.MvcWebRazorHostFactory”types的expression式不能用于返回types“System.Web.WebPages.Razor.WebRazorHostFactory”

任何build议在同一个高度赞赏。

尝试replaceWeb.Config中的行

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

(将MvcWebRazorHostFactory设置为版本4.0.0.0)

在所有视图/ web.config中将MvcWebRazorHostFactory设置为版本5.0.0.0.0

 <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

对于其他人仍然痛苦,我的解决scheme就像上面的解决scheme,但有一个调整 – 我需要在工程引用中匹配工厂types的版本与System.Web.Mvc dll的版本。 要找出你有哪个版本:

  1. 在你的项目中展开“引用”
  2. 右键单击System.Web.Mvc并查看版本

    在这里输入图像说明

  3. 更新您的视图文件夹中的 web.config

所以在我的情况是这样的:

  <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

我得到了同样的错误。 什么对我有用:右键单击您的项目,然后selectpipe理NuGet包。 安装Microsoft ASP.NET Razor。 重build项目。