EntityHydrate任务失败
本文关键字:失败 任务 EntityHydrate | 更新日期: 2023-09-27 18:26:41
我最近安装了Visual Studio 11 Beta和Visual Studio 2010。在那之后,我无法在Visual Studio 2010中构建依赖PostSharp的项目,所以我卸载了Visual Studio 11和.Net Framework 4.5测试版。
当我现在尝试在VisualStudio2010中构建我的项目时,我得到了以下错误:
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"命名空间的原因的信息。
知道怎么解决这个问题吗?我找不到实体框架3的下载链接,也许这可以解决问题?
谢谢。
感谢您提出这个问题。我们(EF团队)进行了一些调查,得出的结论是,该问题可能是在包含SQL Server 11和Visual Studio 11 Beta的计算机中触发的。
在测试版中,EF工具(也称为"SQL Server数据框架工具")的设置包含以下MSBUILD目标文件:
C:''Program Files(x86)''MSRuild''4.0''Microsoft.Common.Targets''ImportAfter''Microsoft.Data.Tools.Integration.Targets
注意:如果您有32位版本的Windows,请使用不带"(x86)"的"程序文件"。
此文件是实体框架设计器和SQL Server数据工具之间集成的陈旧残余,该集成包含在Visual Studio 11开发人员预览版中,但在测试版中被删除(有关详细信息,请参阅此处)。该文件已在最近的内部版本中删除,因此它不会出现在RTM中。
你可能可以解决这个问题,你可以删除或重命名目标文件,例如添加.backup扩展名。
编辑:省省。。。有人在下面报告说,仅仅重命名是不够的。您必须删除该文件
此线程中建议的其他解决方法也可以,但它的最大缺点是从Visual Studio设置中删除整个实体框架设计器。
我终于想通了。此问题是由与.Net Framework 4.5 Beta一起安装的实体框架5引起的。错误消息中提到的Version3常量引用了EF 5。EF 4的内部名称为Version2。
"Microsoft.Data.Entity.Design.Model.SchemaManager"类是与Visual Studio 11一起安装的名为SQL Server数据框架工具的组件的一部分。即使在我卸载了所有与Visual Studio 11和.Net Framework 4.5相关的东西之后,这个组件仍然存在,并被VS 2010用于使用实体框架的项目。
在我移除那个组件后,一切都恢复了正常。在已安装程序的列表中可能有多个条目,只需搜索"数据"即可找到它们。
您必须删除此目录C:''Program Files(x86)''MSRuild''4.0
我之所以发帖,是因为这里似乎什么都不起作用。根据@divega的说法,我决定进入并从"程序和功能"中删除所有SQL Server 2012条目,之后我可以在VS2010中构建实体模型。