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

时间:2012-12-15 14:02:45

标签: .net asp.net-mvc razor web-config asp.net-webpages

安装microsoft web helper后出现以下错误:

  

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

根据我的阅读,我可能尝试过安装错误的版本。但是我该怎么做呢? 到目前为止,我有

  • 卸载microsoft web helper
  • 已删除bin文件夹的内容并重建项目
  • 将我的web.config文件替换为包含所有默认值的新文件(假设我在这里或我的项目没有太大变化。

但这些都没有(如网上建议的那样)。请问如何解决这个问题。我已经在这几个小时了吗

3 个答案:

答案 0 :(得分:61)

升级到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。)

答案 1 :(得分:4)

这只是Dave答案的附录,但是如果你还没有,也不要忘记在所有的Views文件夹中更改它。 最好的办法可能是使用VS中的“替换文件”功能(Ctrl + Shift + H)以确保不会遗漏任何事件。

答案 2 :(得分:0)

我想添加以下内容:

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

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

  

配置错误     描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。

     

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

     

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

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。*程序集将属性复制本地更改为true。

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

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