6

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

我可以在 Internet 上找到的唯一文档是如何使用 CodeTemplates 文件夹覆盖 T4 模板。我想在添加时向列表中添加一个新的 Scaffold... > New Scaffold Item... 看起来在 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 部分视图。我还想搭建一个获取资源文件并以另一种语言生成本地化资源文件的工具。

4

1 回答 1

3

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

  1. 您可以编辑或覆盖控制器、区域、视图等的现有 T4 模板。
  2. 您可以添加将显示在现有 MVC 视图脚手架中的自定义视图脚手架

Visual Studio 团队正在努力在 Visual Studio 的未来更新中重新启用自定义脚手架支持。

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

  1. 在 VS2013 中创建任意 ASP.NET 项目
  2. 添加一个名为CodeTemplates
  3. 在那里创建一个子文件夹,MvcView或者MvcViewWithoutModel取决于您的自定义视图模板是否是强类型视图
  4. 在那里创建一个文件,<templatename>.<lang>.t4其中<templatename>是您想要在 MVC 视图脚手架的下拉列表中显示的任何内容,并且<lang>csvb

首先,您可以从 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 的预览版,可以编写完全自定义的脚手架。

查看这篇介绍如何编写自定义脚手架的博客文章:为 Visual Studio 创建自定义脚手架

于 2014-01-26T03:55:50.673 回答