2017-12-31 38 views
2

T4テンプレート(実行時生成)を使用して、私のプロジェクト(コントローラ、エンティティ、およびビュー)これらのテンプレートに特定のデータを渡します。T4テンプレートで生成されたファイルはプロジェクトに含まれていません

それは私が私のアクションでそれらを生成する方法です:

CustomEntity entity = new CustomEntity(entityName, propertyMap); 
String entityContent = entity.TransformText(); 
System.IO.File.WriteAllText(Server.MapPath("~") + "\\Models\\" + entityName + ".cs", entityContent); 

CustomEntityController controller = new CustomEntityController(entityName); 
String controllerContent = controller.TransformText(); 
System.IO.File.WriteAllText(Server.MapPath("~") + "\\Controllers\\" + entityName + "Controller.cs", controllerContent); 

彼らが適切に生成されているが、それらは私のプロジェクトでinludedされていないが、私はとにかく私のプロジェクトでそれらを使用することはできません。ファイルを右クリックして「プロジェクトに含める」だけでこの問題を解決できますが、プロジェクトに自動的にアクセスする必要があります。

どうすればこの問題を解決できますか?

+0

。 –

答えて

1

this answerで説明したように、再帰的なワイルドカードを含むVisual Studioプロジェクトに動的に生成された.csファイルを含めることができます。これは、csprojファイルを手動で編集することで実行できます。

構文は、(あなたのケースでは、適切なパスを確認してください)以下の通りです:あなたが(例えばEnvDTEを使用して)プロジェクトを自分にファイルを追加する必要が

<ItemGroup> 
    <Compile Include="Models\**\*.cs" /> 
    <Compile Include="Controllers\**\*.cs" /> 
</ItemGroup> 
関連する問題