Сбой задачи EntityHydrate - PullRequest
       37

Сбой задачи EntityHydrate

32 голосов
/ 04 марта 2012

Я недавно установил бета-версию Visual Studio 11 вместе с Visual Studio 2010. После этого мне не удалось собрать свои проекты в Visual Studio 2010, основанные на PostSharp, поэтому я удалил Visual Studio 11 и .Net Framework 4.5 Beta.

Когда я сейчас пытаюсь построить свои проекты в Visual Studio 2010, я получаю следующую ошибку:

Error   20: The "EntityHydrate" task failed unexpectedly.
System.TypeInitializationException: The type initializer for 'Microsoft.Data.Entity.Design.Model.SchemaManager' threw an exception. ---> System.MissingFieldException: Field not found: 'System.Data.Entity.Design.EntityFrameworkVersions.Version3'.
   at Microsoft.Data.Entity.Design.Model.SchemaManager..cctor()
   --- End of inner exception stack trace ---
   at Microsoft.Data.Entity.Design.Model.SchemaManager.GetSchemaVersion(XNamespace xNamespace)
   at Microsoft.Data.Tools.Integration.Build.EntityHydrate.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult)   
BuildingModule

Я уже переустановил Entity Framework 4.1 и .Net Framework 4, но безуспешно. Мне также не удалось найти информацию о цели задачи «EntityHydrate» или о том, почему она пытается получить доступ к пространству имен «Version3» структуры сущностей.

Есть идеи, как это исправить? Я не смог найти ссылку для загрузки Entity Framework 3, может, это решило бы проблему?

Спасибо.

Ответы [ 4 ]

30 голосов
/ 03 апреля 2012

Спасибо, что подняли это. Мы (команда EF) провели некоторое исследование, и мы пришли к выводу, что проблема может быть вызвана на компьютере, который содержит SQL Server 11 и Visual Studio 11 Beta.

В бета-версии настройка EF Tools (также известная как «Инструменты SQL Server Data Framework») содержит этот файл целей MSBUILD:

C: \ Program Files (x86) \ MSbuild \ 4.0 \ Microsoft.Common.Targets \ ImportAfter \ Microsoft.Data.Tools.Integration.targets

Примечание: используйте «Program Files» без «(x86)», если у вас 32-битная версия Windows.

Этот файл является устаревшим остатком интеграции между Entity Framework Designer и SQL Server Data Tools, который содержался в предварительной версии Visual Studio 11 Developer, но был удален в бета-версии (см. здесь для получения дополнительной информации. ). Файл был удален в более поздних внутренних сборках, поэтому он не будет присутствовать в RTM.

Вы можете обойти эту проблему, вы можете удалить или переименовать файл целей, например, добавив к нему расширение .backup.

РЕДАКТИРОВАТЬ: поцарапать это ... Кто-то сообщает ниже, что переименование недостаточно. Вы должны удалить файл.

Другой обходной путь, предложенный в этом потоке, также будет работать, но у него есть большой недостаток - удаление всего Entity Framework Designer из вашей установки Visual Studio.

21 голосов
/ 05 марта 2012

Я наконец понял это.Проблема вызвана Entity Framework 5, который устанавливается с .Net Framework 4.5 Beta.На EF 5 ссылается константа Version3, упомянутая в сообщении об ошибке.Внутреннее имя EF 4 - версия 2.

. Класс «Microsoft.Data.Entity.Design.Model.SchemaManager» является частью компонента, называемого SQL Server Data Framework Tools , который установленс Visual Studio 11. Даже после того, как я удалил все связанные с Visual Studio 11 и .Net Framework 4.5 вещи, этот компонент все еще был там и использовался VS 2010 для проектов, использующих Entity Framework.

После удаленияэтот компонент все работает снова.Для этого в списке установленных программ может быть несколько записей, просто найдите «data», чтобы найти их.

6 голосов
/ 17 апреля 2012

вы должны удалить этот каталог C: \ Program Files (x86) \ MSbuild \ 4.0

0 голосов
/ 14 июня 2012

Я пишу только потому, что здесь ничего не работает. Исходя из того, что сказал @divega, я решил пойти и удалить все записи SQL Server 2012 из «Программы и компоненты», после чего я смог построить свои модели сущностей в VS2010.

...