如何添加Visual Studio 2013脚手架中使用的新脚手架?

时间:2013-10-29 17:28:30

标签: powershell visual-studio-2013 asp.net-mvc-5 t4 asp.net-mvc-scaffolding

有没有办法添加新的Scaffold或覆盖新的Visual Studio 2013 Scaffolding中使用的Scaffolding功能?

我可以在互联网上找到的唯一文档是如何使用CodeTemplates文件夹覆盖T4模板。我想在Add ...>列表中添加一个新的Scaffold。新的Scaffold项目......在Visual Studio 2013中,它已经被放入一个库(Microsoft.AspNet.Scaffolding.Mvc.5.0.dll)并在GAC中注册或作为VS扩展。

http://weblogs.asp.net/imranbaloch/archive/2013/09/15/customizing-the-asp-net-mvc-5-web-api-2-scaffolding-templates.aspx?CommentPosted=true#commentmessage

我想覆盖调用T4模板的机制,这样我就可以创建不同的文件并增强功能。我特别需要的是,我想构建旧的CreateOrEdit.cshtml和一个新的DetailsOrDelete.chtml部分视图。我还想使用Scaffold工具来获取资源文件并使用另一种语言生成本地化资源文件。

1 个答案:

答案 0 :(得分:3)

在Visual Studio 2013 RTM中,不支持添加完全自定义的脚手架。您只能进行以下自定义:

  1. 您可以编辑或覆盖控制器,区域,视图等现有的T4模板。
  2. 您可以添加将在现有MVC View脚手架中显示的自定义视图脚手架
  3. Visual Studio团队正在努力在Visual Studio的未来更新中重新启用自定义脚手架支持。

    立即添加自定义视图脚手架:

    1. 在VS2013中创建任何ASP.NET项目
    2. 添加名为CodeTemplates
    3. 的文件夹
    4. 根据您的自定义视图模板是强类型视图,在其中创建一个名为MvcViewMvcViewWithoutModel的子文件夹
    5. <templatename>.<lang>.t4的形式在那里创建一个文件,其中<templatename>是您想要在MVC View脚手架的下拉列表中显示的内容,<lang>cs }或vb
    6. 要开始使用,您可以从VS2013的默认列表中复制任何现有的脚手架并进行自定义。您可以从这里获得内置脚手架:

      C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView
      C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcViewWithoutModel
      

      如果您使用与现有脚手架相同的名称,那么它将覆盖内置脚手架,即使从另一个脚手架调用也是如此。例如,MVC控制器脚手架将使用项目中的重写视图脚手架。

      2014年4月22日更新

      现在可以使用Visual Studio 2013 Update 2的预览,可以编写完全自定义的脚手架。

      查看此博客文章,了解如何编写自定义脚手架:Creating a Custom Scaffolder for Visual Studio