检测到 ASP.NET 网页的冲突版本:指定的版本为 "1.0.0.0" ,但 bin 中的版本在 ASP 中"2.0.0.0"。MET MVC 3



安装microsoft web助手后,我收到以下错误:

检测到有冲突的ASP.NET网页版本:指定的版本为"1.0.0.0",但bin中的版本是"2.0.0.0"。若要继续,请从应用程序的bin目录中删除文件或在Web.config中删除版本规范。

从我读到的内容来看,我可能尝试安装错误的版本。但是我该如何更正呢?到目前为止,我有

  • 卸载microsoftweb助手
  • 删除了bin文件夹的内容并重新生成项目
  • 将我的web.config文件替换为一个具有所有默认值的新文件(假设我在这里或我的项目没有太大更改)

但这些(如网上所建议的)都不起作用。关于如何解决这个问题,请提供任何提示。我已经做了几个小时了

我在升级到VS 2013 Express Preview后遇到了这个问题。

然后我注意到web.config中有一行是:

<add key="webpages:Version" value="1.0.0.0" />

将其更改为我的bin文件夹中的system.web.webpages.dll版本:

<add key="webpages:Version" value="3.0.0.0" />

然后问题就解决了。(在你的情况下,我猜是2.0.0.0。)

这只是Dave答案的一个附录,但如果没有,请不要忘记在所有Views文件夹中更改它。最好的方法可能是使用VS中的"在文件中替换"功能(Ctrl+Shift+H),以确保您不会错过任何事件。

我想添加以下内容:

就我的情况而言,我能够通过以下方式修复它。首先(重要!),我将目标框架更改为4.6.1,重新加载解决方案,然后使用NUGET升级二进制包。

然后,在按照上述解决方案解决问题后,我又得到了错误:

配置错误描述:处理服务此请求所需的配置文件时出错。请查看下面的具体错误详细信息,并适当修改您的配置文件。

分析程序错误消息:为system.web.webPages.razor/host:创建配置节处理程序时出错:无法加载文件或程序集"system.web.webPages.razor,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856a364e35"或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT异常:0x80131040)

程序集加载跟踪:以下信息有助于确定无法加载程序集"System.Web.WebPages.Razor,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856a364e35"的原因。

Web.config的相关部分如下所示:

<configSections>
<sectionGroup name="system.web.webPages.razor" 
type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, 
System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, 
System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, 
System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

在将其更改为:之后

<configSections>
<sectionGroup name="system.web.webPages.razor"  
type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, 
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, 
PublicKeyToken=31BF3856AD364E35"  >
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, 
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, 
PublicKeyToken=31BF3856AD364E35"  />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, 
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, 
PublicKeyToken=31BF3856AD364E35"  />
</sectionGroup>
</configSections>

它立刻起作用了。

注意:

  • 我还将每个System.Web.*程序集的属性copy local更改为true。

  • 在某些项目中,节组sectionGroup name="system.web.webPages.razor"可能会丢失——在这种情况下,您需要添加它。

  • 如果您计划升级到MVC 4,请在执行最后一步之前先升级到MVC 3,因为MVC 4中有一些突破性的更改(请参阅此处的详细信息)。

最新更新