32 votes

La tâche EntityHydrate a échoué

J'ai récemment installé Visual Studio 11 Beta avec Visual Studio 2010. Après que j'ai été incapable de construire mes projets dans Visual Studio 2010 qui s'appuient sur PostSharp j'ai donc désinstallé Visual Studio 11 et le .Net Framework 4.5 Beta.

Quand j'essaie maintenant de construire mes projets dans Visual Studio 2010, j'obtiens l'erreur suivante:

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

J'ai déjà réinstallé Entity Framework 4.1 et .Net Framework 4, sans succès. J'ai également été incapable de trouver des informations sur le but de la "EntityHydrate" tâche ou pourquoi il tente d'accéder à la "Version 3" espace de noms de l'entity framework.

Une idée de comment résoudre ce problème? Je ne pouvais pas trouver un lien de téléchargement pour Entity Framework 3, cela pourrait peut-être résoudre le problème?

Je vous remercie.

30voto

divega Points 2935

Merci pour l'élévation de cette dernière. Nous (l'équipe EF) a fait quelques recherches, et nous avons conclu que la question pourrait être déclenché dans une machine qui contient SQL Server 11 et Visual Studio 11 Beta.

Dans la version bêta, le programme d'installation de l'EF Outils (aussi connu comme "Données SQL Server, Framework Tools") contient ce MSBUILD objectifs de fichier:

C:\Program Files (x86)\MSbuild\4.0\Microsoft.Commun.Objectifs\ImportAfter\Microsoft.Les données.Outils.De l'intégration.objectifs

Remarque: l'Utilisation de "Program Files" sans "(x86)" si vous avez la version 32 bits de Windows.

Ce fichier est obsolète vestige de l'intégration entre le Concepteur d'Entity Framework et Outils de Données SQL Server, ce qui était contenu dans Visual Studio 11 Developer Preview, mais supprimé dans la version bêta (voir ici pour plus de détails). Le fichier a été supprimé dans les plus récentes de développement interne, de sorte qu'il ne sera pas présent dans la version d'origine.

Vous pourriez être en mesure de contourner ce problème, vous pouvez supprimer ou renommer les objectifs de fichier, par exemple en ajoutant la .sauvegarde de la prolongation.

EDIT: Scratch... Quelqu'un signale ci-dessous que le renommage n'est pas suffisant. Vous devez supprimer le fichier.

L'autre solution proposée dans ce thread fonctionne également, mais il a le gros inconvénient de la suppression de l'ensemble de l'Entity Framework Designer à partir de votre installation de Visual Studio.

21voto

2dpc Points 509

J'ai enfin compris. Le problème est causé par Entity Framework 5 qui est installé avec .Net Framework 4.5 Beta. EF 5 est référencé par la Version 3 de la constante qui est mentionné dans le message d'erreur. Le nom interne de l'EF 4 est Version2.

"Microsoft.Les données.De l'entité.De la conception.De modèle.SchemaManager" classe fait partie d'un composant appelé de Données SQL Server Cadre des Outils qui est installé avec Visual Studio 11. Même après que je l'ai désinstallé tous Visual Studio 11 et .Net Framework 4.5 choses liées à cette composante était toujours là et utilisé par rapport à 2010 pour les projets qui font usage de l'Entity Framework.

Après j'ai supprimé cette composante tout fonctionne à nouveau. Il pourrait y avoir plus d'une entrée dans la liste des programmes installés, il suffit de chercher "données" pour les trouver.

6voto

gachi Points 77

vous devez supprimer ce répertoire C: \ Program Files (x86) \ MSbuild \ 4.0

0voto

vbigham Points 91

Je ne fais que poster car rien ne semblait fonctionner ici. Sur la base de ce que @divega a dit, j'ai décidé de supprimer toutes les entrées SQL Server 2012 de «Programmes et fonctionnalités», après quoi je pouvais créer mes modèles d'entité dans VS2010.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X