我也尝试按照那篇文章操作,但一开始并没有完全成功。
要解决这个问题,可以创建一个新的Web MVC项目并保存它,然后用记事本打开web.config、views中的web.config、packages.config和.csproj文件。
接下来,打开你的项目,查看文件版本号的差异,例如在packages中应该看到:
<package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net45" />
但是你可以拥有
<package id="Microsoft.AspNet.Mvc" version="4.x.x.x" targetFramework="net40" />
在web.config文件中
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
但你可以拥有
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
in .csproj
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.Helpers.dll</HintPath>
</Reference>
但是你可以拥有。
<Reference Include="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.Helpers.dll</HintPath>
</Reference>
替换所有为新值
完成后按Ctrl+Shift+B,在NuGet控制台中使用“Update-Package”命令更新所有包。
对我来说,这最终起作用了。