32

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

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

根据我的阅读,我可能尝试安装错误的版本。但是我该如何解决这个问题?到目前为止,我有

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

但是这些(如网上建议的)都没有奏效。请提供有关如何解决此问题的任何提示。我已经在这几个小时了

4

3 回答 3

65

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

于 2013-07-09T12:43:37.557 回答
5

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

于 2014-01-16T13:53:02.083 回答
0

我想添加以下内容:

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

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

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

解析器错误消息:为 system.web.webPages.razor/host 创建配置节处理程序时出错:无法加载文件或程序集 'System.Web.WebPages.Razor,版本 = 2.0.0.0,文化 = 中性,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.* 程序集的属性copy local更改为 true。

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

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

于 2016-06-28T12:23:51.207 回答