我正在使用 T4 模板(运行时生成(为我的项目(控制器、实体和视图(生成一些.cs文件,这些文件需要由我的控制器的操作动态创建,这些文件将特定数据传递给这些模板。
这是我在操作中生成它们的方式:
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);
它们是正确生成的,但是它们没有包含在我的项目中,所以我无论如何都不能在我的项目中使用它们。只有右键单击文件并"包含在项目中"才能解决此问题,但我需要在我的项目中自动访问它们。
如何解决这个问题?
你可以将动态生成的.cs文件包含在Visual Studio项目中,并包含递归通配符,如本答案中所述。这可以通过手动编辑 csproj 文件来完成。
语法如下(检查您情况下的正确路径(:
<ItemGroup>
<Compile Include="Models***.cs" />
<Compile Include="Controllers***.cs" />
</ItemGroup>