Code generation 使用T4创建Visual Studio项目目录

Code generation 使用T4创建Visual Studio项目目录,code-generation,t4,Code Generation,T4,我正在尝试使用T4生成源代码。大多数情况下,我能够使用它生成单个文件。如何创建具有以下示例结构的完整Visual Studio目录(最好与T4模板目录分开): /MyProject – Contains MyProject.sln. /app - Contains the core project layers. /MyProject.ApplicationServices /MyProject.Core /MyProject.Data /MyProject.We

我正在尝试使用T4生成源代码。大多数情况下,我能够使用它生成单个文件。如何创建具有以下示例结构的完整Visual Studio目录(最好与T4模板目录分开):

/MyProject – Contains MyProject.sln.
/app - Contains the core project layers.
    /MyProject.ApplicationServices
    /MyProject.Core
    /MyProject.Data
    /MyProject.Web
    /MyProject.Web.Controllers
/build - Empty folder for housing build related stuff.
/lib - Contains the solution items for the deployable application.
/db - Contains database schema information; e.g., the result of scaffolding and/or NHibernate's schema export.
/docs - Project documents.
/logs - Output location for log files.
/tests
    /MyProject.Tests
/tools
    /lib - Contains the solution items for the tests project and all other non-deployable assemblies.
    /CrudScaffolding - Customizable CRUD, scaffolding generation code.

您可以查看Microsoft提供的Visual Studio扩展和工具包。他们的目的正是为了能够编写项目和解决方案生成向导,并充分利用T4。事实上,它们是T4最初产生的原因。然而,由于它们可以被视为一个“软件工厂”,它们确实有一条陡峭的学习曲线。

如前所述,我确实认为导航自动化可以完成这类工作,但这是一条相当长的学习曲线

以下是几个其他选项:

  • 达米恩守卫有一篇关于如何使用的帖子。但是,它可能不太适合创建许多不同类型的文件。如果您要创建许多类似类型的文件(例如多个代码文件、各种项目文件等),他的技术将非常有用
  • 另一个选择是结合您现有的T4模板和知识,并使用创建输出。例如,您可以简单地使用一个.bat文件来执行各种命令,以使用T4和现有模板生成必要的输出。这里的缺点是很难将参数传递到命令行实用程序中,但这个问题也存在一些问题

  • 它是否允许按语法生成整个VisualStudio目录和源代码?他们有API/库吗?你的意思是创建一个所有开发者都应该遵守的源代码树吗?我不确定,但恐怕并没有那个么容易,因为您将使用引导自动化创建的模板更基于项目或解决方案。但话说回来,我已经有很长一段时间没有看它了,而且我没有深入研究,所以我不能说你可以用它来做什么花哨的把戏。我检查了导航自动化,似乎它不起作用,因为它需要visual studio,因为它是它的扩展。我需要从一个可以在没有visual studio的情况下运行的.NET代码中创建整个项目目录。更多说明,在上面的示例中,我有存储在数据库中的各种类定义(类名、属性类型/名称等)。源代码需要生成并放入lib文件夹。在DB文件夹中生成相应的SQL脚本和nHibernate代码。将日志放入日志文件夹等。。