3

私はc#.netにプロジェクトを持っています。
同じプロジェクトに他のc#クラスを生成するac#クラスを実行できるように、「prebuild」イベントをフックする必要があります。
Javaではmavenプラグインを使用してソースコードを生成できることを知っていますが、.netで可能ですか?

ありがとう。

4

3 に答える 3

6

TangibleT4Editorをお試しください。組み込みのT4テキストテンプレート機能を公開するVisualStudioのプラグインであるため、C#ファイルの自動生成に使用できます。Visual Studio内でのC#コードのコンパイル時生成のサポートを有効にします。

これを使用して、コンパイル時に.xmlファイルを2,600行のC#に変換しました。ここで、.xmlファイルを変更して再コンパイルすると、正しいC#コードが自動的に再生成されます。

それは魔法のように機能し、完全にシームレスです。

于 2011-11-03T12:48:07.637 に答える
3

少なくとも2つのオプションがあります。

  1. T4を使用する
  2. ビルド前のステップをビルドファイルに追加します。

T4は、コード生成を行うための組み込みの方法です(ASP.NETMVCスキャフォールディングおよびEntityFrameworkタイプの生成で広く使用されています)。ただし、T4はコンパイル時の生成を直接サポートしていません。これは、開発者が(再)生成をトリガーする設計時または実行時の生成のいずれかを行います。(サードパーティのツールはコンパイル時の生成を追加できます)。


補遺(6年後):Clarius.TransformOnBuildなどのNuGetパッケージでもこれを実行できます。

カスタムMSBuildタスク(外部プログラムの実行を含む)を使用してコードを作成し、それをコンパイルに含めることができます。最も単純なケースでは、プロジェクトの「ビルド前」設定を使用できます(プロジェクトプロパティの[ビルドイベント]タブ)。MSBuildで直接作業する(そしてa.csprojはMSBuildファイルです)と、柔軟性が高まります。

于 2011-11-03T12:47:44.550 に答える
2

T4 Templatesが必要なようですね。

于 2011-11-03T12:45:12.960 に答える