使用T4Toolbox时运行TextTransform.exe时出现问题

时间:2011-05-26 07:52:58

标签: .net visual-studio t4 css t4-toolbox

我正在尝试运行TextTransform.exe以使用T4模板文件生成代码。 模板文件依赖于T4Toolbox(具体来说,它包含实现T4Toolbox.Template类的类)。

因此,它包含文件t4toolbox.tt,其中包含以下指令:

<#@ dte processor="T4Toolbox.DteProcessor" #>

<#@ TransformationContext processor="T4Toolbox.TransformationContextProcessor" #>

在执行期间,我对两个引用的处理器都收到以下错误:

C:\Program Files\T4 Toolbox\t4toolbox.tt(1,4) : error : A processor named 'T4Toolbox.DteProcessor' could not be found for the directive named 'dte'. The transfo
rmation will not be run.  The following Exception was thrown:
System.IO.FileNotFoundException: Failed to load directive processor T4Toolbox.DteProcessor.
   at Microsoft.VisualStudio.TextTemplating.CommandLine.CommandLineHost.ResolveDirectiveProcessor(String processorName)
   at Microsoft.VisualStudio.TextTemplating.Engine.ProcessCustomDirectives(ITextTemplatingEngineHost host, TemplateProcessingSession session, List`1 directivesT
oBeProcessed)

我正在使用以下参数运行exe:

TextTransform.exe
-I "C:\Program Files\T4 Toolbox" 
-P "[Framework3.5],[VS2008 PublicAssemblies]" 
-dp "XsdProcessor!T4Toolbox.XsdProcessor!T4Toolbox.dll" 
-r "T4Toolbox.dll" mytemplate.tt

我尝试使用带有多个-dp参数的附加指令处理器,并使用逗号分隔列表(我可以看到DteProcessorTransformationContextProcessor都在T4Toolbox中实现,所以假设语法类似于XsdProcessor?)

的规范

有关如何摆脱这些错误的任何想法?模板生成在visual studio中完美运行。

1 个答案:

答案 0 :(得分:1)

我设法通过对命令行参数进行一些调整来解决所提到的错误。 TextTransform.exe似乎需要单独指定多个路径或指令。我的处理程序集也不正确(-r)

例如: TextTransform.exe -I "C:\Program Files\T4 Toolbox" -P "[path1]" -P "[path2]" -dp "T4Toolbox.DteProcessor!T4Toolbox.DteProcessor!T4Toolbox.dll" -dp "T4Toolbox.TransformationContextProcessor!T4Toolbox.TransformationContextProcessor!T4Toolbox.dll"
-r Microsoft.VisualStudio.TextTemplating.VSHost.dll" mytemplate.tt

然而,不幸的是,解决这两个问题导致了死胡同。 目前不支持使用T4Toolbox。

http://t4toolbox.codeplex.com/discussions/52069

相反,我正在考虑调用MSBuild。 以下是一个很好的参考: http://www.olegsych.com/2010/04/understanding-t4-msbuild-integration/#ConfiguringTransformationEnvironment