MvcBuildViews верно с Entity Framework в ASP.NET MVC 2 - PullRequest
32 голосов
/ 04 мая 2010

В VS 2010 изменение <MvcBuildViews>true</MvcBuildViews> в файле .csproj проекта MVC2 приводит к ошибке при использовании Entity Framework.

Не удалось загрузить тип 'System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider'. C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ web.config 129

Я хочу создавать представления во время отладки, а также хочу, чтобы мой проект компилировался!

Ответы [ 6 ]

58 голосов
/ 11 мая 2010

Вы можете решить эту проблему компиляции MVC, добавив следующий элемент в ваш файл web.config:

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

Это сообщит компилятору, где найти этот отсутствующий тип.

4 голосов
/ 13 июля 2010

У меня тоже была эта проблема, и я понял, что создал несколько файлов сущностей (edmx и т. П.), Но удалил их.

эта проблема начала возникать только после того, как я создал эти файлы. При проверке папок приложения я обнаружил, что Visual Studio фактически не «удалила» их с диска, она просто «удалила» их из проекта. поэтому, когда проект компилировался, он увидел этот файл edmx и решил, что он будет включать его. отсюда и ошибка.

easy fix - навсегда удалить файлы сущности с диска!

3 голосов
/ 11 апреля 2012

Также вы можете удалить поставщика сборки.

<system.web>
  <compilation debug="true" targetFramework="4.0">
    <buildProviders>
      <remove extension=".edmx"/>
    </buildProviders>
  </compilation>
</system.web>
2 голосов
/ 16 мая 2010

Это полный пример 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>
0 голосов
/ 03 мая 2017

Недостаточно представителей для добавления комментария. Хотел бы упомянуть, что вам нужно добавить ссылку на сборку 'System.Data.Entity.Design' в корневой Web.config. Я случайно попытался добавить его в файл Web.config в моем каталоге Views. Остерегайтесь этой ловушки.

0 голосов
/ 04 мая 2010

У меня была похожая ошибка при настройке 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>

HTHS
Charles

...