2009-07-15 16 views
0

T4でコードを生成しようとしていますが、<#@ template language = "VBv3.5"#ディレクティブをマイテンプレート。ProcessBemplateメソッドを呼び出すときにVBV3.5インクルードディレクティブのスローエラーが発生する

VBC:コマンドライン(0,0):エラーBC2006:Compinling変換:オプション 'R'「が必要です:(file_listの)

私は<#1 @テンプレート言語= "C#のV3.5" を使用している場合#>私の指示としてはうまく動作します。また、私はコード経由で生成することを試みていないし、.ttファイルを保存するだけでVBv3.5ディレクティブで正常に動作します。

ここは私のt4テンプレートです。

<#@ output extension="txt" #> 
<#@ assembly name="Microsoft.SqlServer.ConnectionInfo" #> 
<#@ assembly name="Microsoft.SqlServer.Smo" #> 
<#@ assembly name="System.Configuration" #> 
<#@ assembly name="Microsoft.VisualBasic" #> 
hello world 

は、ここに私の.NETコード

Dim host As CustomCmdLineHost = New CustomCmdLineHost() 
    Dim engine As Engine = New Engine() 

    host.TemplateFileValue = sTemplateFile 

    'Read the text template. 
    Dim input As String = File.ReadAllText(sTemplateFile) 

    'Transform the text template. 
    Dim output As String = engine.ProcessTemplate(input, host) 

答えて

0

これは(Visual StudioとTextTransformで)標準T4ホストで動作しています。このエラーに基づいて、カスタムホストはアセンブリ参照の一覧を正しく提供していないようです。

+0

お返事ありがとうございます。私はあなたのT4チュートリアルを愛しています! Visual Studioに.ttファイルを保存するだけでうまく動作するようになりました(標準のT4ホストが何を意味するのだろうか?)。 VBv3.5指示文をインクルードし、CustomCmdLineHostを渡しているときにProcessTemplateメソッドを実行すると、爆発します。 VBv3.5指令を削除するか、C#v3.5に切り替えるとすべて正常に動作します。 – vonfeldj

関連する問題