2

Win 7 Ultimate SP1 およびEF Power Toolsで MS Visual Studio 2012 Update 1 を使用しています。

MySql DB でエンティティ フレームワークのリバース エンジニア Code First 機能を使用しようとしています。DB に正常に接続できますが、コード生成を完了しようとすると、次のエラーが発生します。

System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.DbContextPackage.Extensions.ProjectExtensions.InstallPackage(Project project, String packageId)
   at Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(Project project)

One or more errors occurred while processing template '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 : A processor named 'T4VSHost' could not be found for the directive named 'CleanupBehavior'. The transformation will not be run.  The following Exception was thrown:
System.InvalidOperationException: Cannot find processor for directive '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)

Google foo を使用して情報を見つけることができませんでした。

4

1 に答える 1

4

これは現在、エンティティ フレームワークに関するアクティブなバグです。バグの詳細はこちらで確認できます。

現在、2 つの回避策があり、私が使用したものを以下に示します。

C# のファイルを開きます。

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.CS.ttinclude

またはVB.netの場合:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.VB.ttinclude

最初の行を削除します。

<#@ CleanupBehavior Processor="T4VSHost" CleanupAfterProcessingTemplate="true" #>
于 2013-01-04T15:37:18.823 に答える