私はc#.netにプロジェクトを持っています。
同じプロジェクトに他のc#クラスを生成するac#クラスを実行できるように、「prebuild」イベントをフックする必要があります。
Javaではmavenプラグインを使用してソースコードを生成できることを知っていますが、.netで可能ですか?
ありがとう。
私はc#.netにプロジェクトを持っています。
同じプロジェクトに他のc#クラスを生成するac#クラスを実行できるように、「prebuild」イベントをフックする必要があります。
Javaではmavenプラグインを使用してソースコードを生成できることを知っていますが、.netで可能ですか?
ありがとう。
TangibleT4Editorをお試しください。組み込みのT4テキストテンプレート機能を公開するVisualStudioのプラグインであるため、C#ファイルの自動生成に使用できます。Visual Studio内でのC#コードのコンパイル時生成のサポートを有効にします。
これを使用して、コンパイル時に.xmlファイルを2,600行のC#に変換しました。ここで、.xmlファイルを変更して再コンパイルすると、正しいC#コードが自動的に再生成されます。
それは魔法のように機能し、完全にシームレスです。
少なくとも2つのオプションがあります。
T4は、コード生成を行うための組み込みの方法です(ASP.NETMVCスキャフォールディングおよびEntityFrameworkタイプの生成で広く使用されています)。ただし、T4はコンパイル時の生成を直接サポートしていません。これは、開発者が(再)生成をトリガーする設計時または実行時の生成のいずれかを行います。(サードパーティのツールはコンパイル時の生成を追加できます)。
補遺(6年後):Clarius.TransformOnBuildなどのNuGetパッケージでもこれを実行できます。
カスタムMSBuildタスク(外部プログラムの実行を含む)を使用してコードを作成し、それをコンパイルに含めることができます。最も単純なケースでは、プロジェクトの「ビルド前」設定を使用できます(プロジェクトプロパティの[ビルドイベント]タブ)。MSBuildで直接作業する(そしてa.csproj
はMSBuildファイルです)と、柔軟性が高まります。
T4 Templatesが必要なようですね。