2012-04-21 14 views
1

.ttファイルを処理するためにpowershellを使用しようとしています。私はそれが本当に近いと思うが、私はビジュアルスタジオを使用しているときに存在しないPowerShellから呼び出すエラーを取得します。 Visual Studioから実行ビジュアルスタジオではなく、powershellからt4テンプレートエラーが発生します。

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() #> 

は、.ttは私が受け取るのPowerShellから細かいファイルが

を生成し、役に立たない 'ErrorGeneratingOutput'

私はこの問題の要点は、PowerShellで使用するときにITextTemplatingEngineHostを実装する方法だと思いますが、ここで何か提案を歓迎します。

ありがとうございます!

答えて

0

誰かがあなたに、MicrosoftのT4エンジンを使用する方法についてのアドバイスを提供していますが、個人的に言えば、私が直接、Monoのオープンソース実装を使用することを好む、Mono.TextTemplatingとTextTransformあなたのコンパイル

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

まであなたは待つことができますコマンドラインユーティリティのTextTransform.exeを入手してください。

+0

コメントのおかげで、私はテンプレートのように1つのホストでうまく動作するが、他のものはうまくいきません。コマンドラインアプリケーションは、同じITextTemplatingEngineHost dllでうまく動作するので、方法がある可能性があります。 – MikeW

関連する問題