質問

TextTransform.exeを使用してテンプレートからコードを生成するときに、引数-aを使用する方法の例を見つけることができません。 MSDN には、引数-a:

の説明があります
  

"ディレクティブを指定するパラメーターを指定します   プロセッサは   名前/値のペア。ディレクティブ   プロセッサと識別子はオプションです。   これにより、パラメーターを指定できます   ディレクティブプロセッサまたは   特定のディレクティブのインスタンス   プロセッサ。"

テンプレートには、接続文字列などの引数のセットが必要です。私のアイデアは、引数-aを使用して構成ファイルへのパスを取得することでした。

よろしく アントン・カルチク

更新:明確にするために、テンプレートで直接パラメーターを読み取りたい。

役に立ちましたか?

解決

Text Template Transformation Toolkit(T4)は、Microsoftからはあまりサポートされていません。ほんの数例。詳細については、 Olegs Sychsブログをご覧ください。 T4はここで非常に深く説明されています。

テンプレートのTextTransform.exeからパラメーターを取得しようとして数時間後、解決策を見つけました:

hostspecific =" true" 属性を template 要素に次のように追加します。

<#@ template language="C#v3.5" hostspecific="true"#>

テンプレートの後で、Olegが言及したように ResolveParameterValue を呼び出すことができます。

例:

<#

 string parameterTest = Host.ResolveParameterValue(null, null, "someKey");
 WriteLine(parameterTest);

#>

次のようにテンプレートジェネレータを呼び出します:

"C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe" -a !!someKey!someValue

生成後、生成されたファイルに「someValue」が必要です

他のヒント

-a引数は、次の形式の値を受け入れます。

<ProcessorName>!<DirectiveID>!<ParameterName>

これらは、 ITextTemplatingEngineHostのパラメーターでもあります。 .ResolveParameterValue メソッド。テンプレートコードでパラメーター値を取得するために呼び出す必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top