使用 VS 2015 构建时生成 T4 时出错

问题描述 投票:0回答:1

我正在使用 Visual Studio 2015 更新 3。我尝试将 TextTransform.exedp 标志一起使用,但出现此错误:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF6.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.IO.FileNotFoundException: Failed to load directive processor T4VSHost. ---> System.IndexOutOfRangeException: L'index se trouve en dehors des limites du tableau.
 à Microsoft.VisualStudio.TextTemplating.CommandLine.DirectiveProcessorConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
 à Microsoft.VisualStudio.TextTemplating.CommandLine.CommandLineHost.ResolveDirectiveProcessor(String processorName)
 à Microsoft.VisualStudio.TextTemplating.CommandLine.CommandLineHost.ResolveDirectiveProcessor(String processorName)
 à  Microsoft.VisualStudio.TextTemplating.Engine.ProcessCustomDirectives(ITextTemplatingEngineHost host, TemplateProcessingSession session, IEnumerable`1 directivesToBeProcessed)

产生错误的行:

 texttransform -out "P:\<Path to project>\Model.cs" -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes" -dp T4VSHost"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Microsoft.Data.Entity.Design.dll" "P:\<Path to project>\Model.tt"

我查过的其他问题:

到目前为止我所知道的是所有路径都是正确的,并且我的注册表中的 T4VSHost 定义是正确的。

限制:

  • 我无法修改/移动 .tt 文件
  • 我无法移动程序集文件或 ttinclude 文件(尽管我尝试过)

我非常希望避免修改 EF.CS.ttinclude 文件。是什么原因导致这个问题?

visual-studio-2015 template-engine t4
1个回答
2
投票

-dp
开关缺少类名称,它应该有名称、完整类型名称和指令处理器的程序集。

指令处理器语法:

-dp &lt;processorName&gt;!&lt;className&gt;!&lt;assemblyName|codeBase&gt;

对于

EF6.Utility.CS.ttinclude
具体来说,它需要
T4VSHost
来表示
CleanupBehavior
,它位于
Microsoft.Data.Entity.Design.dll

CleanupBehavior 的指令处理器:

-dp T4VSHost!Microsoft.Data.Entity.Design.VisualStudio.Directives.FallbackT4VSHostProcessor!"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Microsoft.Data.Entity.Design.dll"
© www.soinside.com 2019 - 2024. All rights reserved.