34

在 VS 2010 中,<MvcBuildViews>true</MvcBuildViews>如果您使用的是实体框架,则更改 MVC2 项目的 .csproj 文件会导致错误。

无法加载类型“System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider”。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config 129

我想在调试时构建视图,并且我还希望我的项目能够编译!

4

6 回答 6

60

您可以通过将以下元素添加到 web.config 文件来解决此 MVC 编译问题:

<add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

这将告诉编译器在哪里可以找到丢失的类型。

于 2010-05-11T16:51:24.310 回答
5

我也遇到了这个问题,发现我创建了一些实体文件(edmx 等)但已经删除了它们。

这个问题只是在我创建了这些文件后才开始发生。在检查应用程序文件夹时,我发现 Visual Studio 实际上并没有将它们从驱动器中“删除”,它只是将它们从项目中“删除”。因此,在编译项目时,它看到了这个 edmx 文件并决定将其包含在内。因此错误。

轻松修复 - 永久删除驱动器上的实体文件!

于 2010-07-13T10:13:38.430 回答
3

或者,您可以删除构建提供程序。

<system.web>
  <compilation debug="true" targetFramework="4.0">
    <buildProviders>
      <remove extension=".edmx"/>
    </buildProviders>
  </compilation>
</system.web>
于 2012-04-11T17:35:18.293 回答
2

这是一个完整的示例 web.config

<configuration>
<system.web>
    <customErrors mode="Off"/>
        <compilation debug="true" targetFramework="4.0">
 <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />       
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </assemblies>
</compilation>
</system.web>
</configuration>
于 2010-05-16T17:59:10.637 回答
0

我在设置时遇到了类似的错误,MvcBuildViews="true"这与构建发现多个 web.configs 由于构建临时文件而根本不喜欢它有关。

这是一个完全不同的错误,但我偷偷怀疑它们可能是相关的......

您可以在此处找到我的原始问题,然后在此处找到概述的解决方案

该解决方案基本上可以让您更改输出路径的构建位置......因此您需要添加<BaseIntermediateOutputPath>到您网站的 csproj 文件中。

例如

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    ...BLAH...
    <BaseIntermediateOutputPath>..\TempBuildOutput</BaseIntermediateOutputPath>
  </PropertyGroup>
  ...A WHOLE LOTTA BLAH...
</Project>

HTH,
查尔斯

于 2010-05-04T04:24:21.607 回答
0

没有足够的代表来添加评论。想提一下,您需要将“System.Data.Entity.Design”程序集引用添加到根 Web.config。我无意中尝试将其添加到我的 Views 目录中的 Web.config 中。当心这个陷阱。

于 2017-05-03T18:05:43.537 回答