EntityHydrate任务失败

2dp*_*dpc 32 .net c# entity-framework visual-studio-2010 visual-studio-2012

我最近在Visual Studio 2010中安装了Visual Studio 11 Beta.之后我无法在依赖PostSharp的Visual Studio 2010中构建项目,因此我卸载了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
Run Code Online (Sandbox Code Playgroud)

我已经重新安装了Entity Framework 4.1和.Net Framework 4但没有成功.我也无法找到有关"EntityHydrate"任务目的的信息,或者为什么它试图访问实体框架的"Version3"命名空间.

知道如何解决这个问题吗?我找不到实体框架3的下载链接,也许可以解决问题?

谢谢.

div*_*ega 30

谢谢你提出这个问题.我们(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

注意:如果您有32位版本的Windows,请使用不带"(x86)"的"Program Files".

此文件是实体框架设计器和SQL Server数据工具之间集成的过时遗留,它包含在Visual Studio 11开发人员预览版中,但已在测试版中删除(有关详细信息,请参见此处).该文件已在更新的内部版本中删除,因此它不会出现在RTM中.

您可以解决此问题,您可以删除或重命名目标文件,例如添加.backup扩展名.

编辑:从头开始......有人在下面报告重命名是不够的.您必须删除该文件.

此线程中建议的其他解决方法也可以使用,但它有一个很大的缺点,即从Visual Studio安装程序中删除整个Entity Framework Designer.

  • 对于所有那些苦苦挣扎的人来说,重命名文件是不够的.我需要实际删除它(将其移动到另一个文件夹)才能开始工作(删除*一切*我可能从系统中删除).然后,它开始工作. (4认同)
  • 重命名文件不起作用.将它移出文件夹确实有效. (4认同)

2dp*_*dpc 21

我终于弄明白了.该问题是由与.Net Framework 4.5 Beta一起安装的Entity Framework 5引起的.EF 5由错误消息中提到的Version3常量引用.EF 4的内部名称是Version2.

"Microsoft.Data.Entity.Design.Model.SchemaManager"类是一个名为SQL Server数据框架工具的组件的一部分,它与Visual Studio 11一起安装.即使在我卸载了所有Visual Studio 11和.Net Framework 4.5相关的东西之后该组件仍然存在,并由VS 2010用于使用实体框架的项目.

删除该组件后,一切都恢复正常.在已安装的程序列表中可能有多个条目,只需搜索"数据"即可找到它们.

  • 我有同样的问题,但我无法卸载SQL Server数据框架工具.它给我错误"找不到Visual Studio产品目录".我卸载VS11后,我用CCCleaner清理了我的注册表,所以可能确实导致了这个错误.但是,我确实在我的程序和功能中卸载了所有其他SQL 2012,它似乎仍然为我修复了错误.谢谢. (6认同)

小智 6

您必须删除此目录C:\ Program Files(x86)\ MSbuild\4.0

  • 这有点过分导致其他问题,其他解决方案删除Microsoft.Data.Tools.Integration.targets文件将解决问题. (2认同)