1

我正在尝试使用 powershell 处理 .tt 文件。我认为它真的很接近,但是我从 powershell 调用时遇到错误,使用 Visual Studio 时该错误不存在。

Powershell 脚本

function DoThing
{

  $inputfile = 'D:\source\62\test.tt'

  [Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualStudio.TextTemplating") | Out-Null
  [Reflection.Assembly]::LoadFile('D:\source\62\Builder.dll') | out-null  

  $host = New-Object ("CustomHost.CustomCmdLineHost") 
  // impl ITextTemplatingEngineHost


  $server = New-Object ("Microsoft.VisualStudio.TextTemplating.Engine") 

  $server.ProcessTemplate($inputfile, $host);

}

Simple.tt 模板

<#@ template language="C#" #>
<#@ output extension=".txt" #>

This content was generated from a template
in the year <#= DateTime.Now.Year.ToString() #>

从 Visual Studio 运行时,.tt 生成文件正常

但是从 powershell 我收到一个无用的“ErrorGeneratingOutput”

我认为问题的要点是如何在从 powershell 使用时实现 ITextTemplatingEngineHost,欢迎在这里提出任何建议。

谢谢!

4

1 回答 1

1

你可以等到有人给你建议如何使用微软的T4引擎,但我个人更喜欢直接使用Mono的开源实现,

https://github.com/mono/monodevelop/tree/master/main/src/addins/TextTemplating

编译 Mono.TextTemplating 和 TextTransform 你得到一个命令行实用程序 TextTransform.exe。

于 2012-04-21T07:34:29.930 回答