Подтвердить что ты не робот

Не удалось выполнить задачу EntityHydrate

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

Когда я пытаюсь создать свои проекты в 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, возможно, это могло решить проблему?

Спасибо.

4b9b3361

Ответ 1

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

В бета-версии настройка EF Tools (также известная как "Инструменты базы данных данных SQL Server" ) содержит этот файл целей 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, который был включен в предварительный просмотр Visual Studio 11 Developer, но удален в бета-версии (см. здесь для получения более подробной информации). Файл был удален в последних внутренних сборках, поэтому он не будет присутствовать в RTM.

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

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

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

Ответ 2

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

Класс "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.

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

Ответ 3

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

Ответ 4

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