使用PowerShell自定义T4脚手架

Sam*_*amy 5 powershell asp.net-mvc-scaffolding asp.net-mvc-4 t4scaffolding visual-studio-2012

我想创建一个使用任意PowerShell逻辑的Custom Scaffolder.它可以渲染T4模板(如果需要,可以多个),输出结果:

  • 作为项目中的新文件
  • 作为插入现有类的新代码块
  • 我的PowerShell逻辑可以使用Visual Studio的"代码模型"API以其他任意方式操作文件和代码元素.

如何使用PowerShell自定义T4脚手架?

Moh*_*ani 5

来自http://blog.stevensanderson.com/2011/04/07/mvcscaffolding-creating-custom-scaffolders/:

在Visual Studio的程序包管理器控制台中,执行以下命令:

Scaffold CustomScaffolder ClassName
Run Code Online (Sandbox Code Playgroud)

这会将CodeTemplates文件夹添加到项目中,其中包含新脚手架的文件.

如您所见,我们有两个文件:

  • 一个PowerShell脚本(.ps1),我们可以在其中放置任意逻辑来决定渲染哪些模板以及输出的位置.默认情况下,它呈现T4模板并使用输出在项目的根目录中创建名为ExampleOutput的新文件.
  • T4模板(.t4),即默认.ps1文件呈现的内容.默认情况下,这会生成一个简单的C#/ VB类(取决于您的项目类型).如果您希望看到这个工作,您可以立即运行自定义脚手架:

    Scaffold ClassName

这将在项目的根文件夹中生成一个新的类文件ExampleOutput.cs.这只是为了向您展示它是如何工作的.我们真的不想这样,所以不要运行新的脚手架,或者如果你已经完成了,删除ExampleOutput.cs