5

任意のPowerShellロジックを使用するカスタム スキャフォルダーを作成したいと考えています。T4 テンプレート(必要に応じて複数のテンプレート)をレンダリングし、結果を出力できます。

  • プロジェクトの新しいファイルとして
  • 既存のクラスに挿入された新しいコード ブロックとして
  • 私の PowerShell ロジックは、Visual Studioの「コード モデル」API を使用して、他の任意の方法でファイルやコード要素を操作できます。

PowerShell を使用して T4 スキャフォールディングをカスタマイズする方法は?

4

1 に答える 1

5

http://blog.stevensanderson.com/2011/04/07/mvcscaffolding-creating-custom-scaffolders/から:

Visual Studio のパッケージ マネージャー コンソールで、次のコマンドを実行します。

Scaffold CustomScaffolder ClassName

これにより、CodeTemplates フォルダーがプロジェクトに追加され、新しいスキャフォルダーのファイルが含まれます。

ご覧のとおり、次の 2 つのファイルがあります。

  • PowerShell スクリプト (.ps1)。任意のロジックを配置して、レンダリングするテンプレートと出力先を決定できます。デフォルトでは、T4 テンプレートをレンダリングし、出力を使用して、プロジェクトのルートに ExampleOutput という名前の新しいファイルを作成します。
  • T4 テンプレート (.t4)、つまり、既定の .ps1 ファイルがレンダリングするもの。デフォルトでは、単純な C#/VB クラスが生成されます (プロジェクトの種類によって異なります)。これが機能することを確認したい場合は、カスタム scaffolder をすぐに実行できます。

    Scaffold ClassName

これにより、プロジェクトのルート フォルダーに新しいクラス ファイル ExampleOutput.cs が生成されます。これは、実際にどのように機能するかを示すためのものです。私たちは本当にそれを望んでいないので、新しいスキャフォールダーをまだ実行しないでください。または、既に実行している場合は、ExampleOutput.cs を削除してください。

于 2012-11-19T14:02:06.387 に答える