使用EF Power Tools Beta 2和VS2012 Update 1反向工程Code First时出现错误

12

尝试使用EF Power Tools Beta 2的“反向工程代码优先”功能为现有数据库生成POCO对象、上下文等。

我使用的是安装了Update 1的VS2012 Ultimate,在Windows 7 64位操作系统上运行。

我将其指向我的现有数据库并点击“确定”。在我的构建输出窗口中,出现以下错误:

处理模板“Entity.tt”时发生一个或多个错误。 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.CS.ttinclude(1,4) : error : 找不到名称为“T4VSHost”的指令处理器。“CleanupBehavior”转换无法运行。引发了以下异常: System.InvalidOperationException: 不能找到指令“T4VSHost”的处理器。 at Microsoft.DbContextPackage.Utilities.EfTextTemplateHost.Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost.ResolveDirectiveProcessor(String processorName) at Microsoft.VisualStudio.TextTemplating.Engine.ProcessCustomDirectives(ITextTemplatingEngineHost host, TemplateProcessingSession session, IEnumerable`1 directivesToBeProcessed)

有任何想法吗?


你卸载了更新吗?我看到这种情况是因为安装了VS更新。解决方法是修复VS。 - Pawel
1
不,但我有进一步的消息。当我回家后,我在我的家用电脑上尝试了它。那台电脑运行的是Windows 8 64位操作系统,Visual Studio 2012旗舰版,但没有安装更新1。我尝试了反向工程,没有安装更新1也可以正常运行。安装了VS2012更新1后,,出现了同样的错误。因此,这明显是由更新1引起的。 - Paul
3个回答

22

补充David下面的回答-连接上报告了CTP中的问题,但在RTM中已得到解决。EF Power Tools在此处存在问题-尽管输出相同,但根本原因是不同的。 - Pawel
我甚至无法编辑EF.Utility.CS.ttinclude文件以删除该行。当我尝试删除并保存该行时,它不允许我编辑该文件..显示访问被拒绝。 - PositiveGuy
我曾经遇到过同样的问题,记事本(或类似应用程序)不允许您编辑只读文件。您需要将其保存到另一个位置(比如桌面),然后使用Windows资源管理器将其复制到目标目录。 - Ben Anderson
这个解决方法对我也起作用了,右键单击您喜欢的编辑器并请求以管理员身份运行,这样您就可以覆盖它。 - Chris Amelinckx

9
这是EF Power Tools中的一个合法问题,但与CTP问题无关,该问题已在最终的VS Update版本中解决。EF Power Tools的修复正在进行中。
David Obando
Entity Framework团队

谢谢确认,David!删除那个“clean”行的解决方法仍然有效吗?或者会引起其他问题吗? - Paul
我甚至无法编辑EF.Utility.CS.ttinclude文件以删除该行。当我尝试删除并保存该行时,它不允许我编辑该文件..显示访问被拒绝。 - PositiveGuy
您能否发布一个大致时间表,说明您期望团队发布更新的VS扩展的时间? - Leblanc Meneses

0
我也遇到了同样的问题。罪魁祸首是一个叫做Entity Framework Power Tool Beta 3的包。更新了这个包后,一切都恢复正常了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接