6

有沒有辦法添加新的腳手架或重寫新的Visual Studio 2013腳手架中使用的腳手架功能?如何添加用於Visual Studio 2013腳手架的新腳手架?

我可以在互聯網上找到的唯一文檔是如何使用CodeTemplates文件夾覆蓋T4模板。我想在添加...>新腳手架項目時添加一個新的腳手架...它看起來像在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部分視圖。我還想搭建一個工具,該工具需要一個資源文件並以另一種語言生成本地化的資源文件。

+0

的方式,它是如何在MVC3更新2做如本視頻由史蒂夫·桑德森在大約第50分鐘,他改變 T4Scaffolding .Scaffolder屬性爲T4Scaffolding.ControllerScaffolder,它是Scaffolder的子類。 腳手架 - ASP.NET,NuGet,實體框架代碼首先和更多 http://channel9.msdn.com/Events/MIX/MIX11/FRM13?format=smooth 我相信,不管ControllerScaffolderAttribute類做了什麼(如註冊它使用MVC工具GUI,也許實現一些由GUI選擇的界面)將與VS 2013中的新MVC 5「添加控制器」對話框類似。 – Rad

+0

史蒂夫安德森還有一系列博客,詳細介紹了此過程:http: //blog.stevensanderson.com/2011/04/06/mvcscaffolding-overriding-the-t4-templates/ – Polynomial

回答

3

在Visual Studio 2013 RTM中,不支持添加完全自定義的腳手架。你只能做以下自定義:

  1. 您可以編輯或覆寫控制器,區域,享有現有的T4模板等
  2. 您可以添加自定義視圖架子工,將在現有的MVC視圖顯示腳手架

Visual Studio團隊正致力於在將來的Visual Studio更新中重新啓用自定義腳手架支持。

要添加自定義視圖棚架今天:

  1. 在VS2013
  2. 添加一個名爲CodeTemplates
  3. 夾在那裏建立子文件夾或者叫做MvcViewMvcViewWithoutModel根據創建任何ASP.NET項目關於您的自定義視圖模板是否爲強類型視圖
  4. <templatename>.<lang>.t4的形式在其中創建文件,其中<templatename>是您希望顯示在t他是MVC View腳手架的下拉列表,<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更新2可用,就可以編寫完全自定義的架子工。

看看這個博客貼子,介紹如何編寫自定義棚架散步:Creating a Custom Scaffolder for Visual Studio

+0

Hello @Eilon。首先,感謝您提供的信息。但你有什麼消息嗎?我期待創建一個CreateOrEdit視圖。 –

+1

@RafaelMerlin如果你想添加一個現在支持的自定義視圖腳手架。我只是在我的答案中添加了一些信息來說明如何做到這一點。 – Eilon

+0

感謝您的回答@Eilon。我能夠爲CreateOrEdit視圖創建一個新的模板,並且它幫助了很多。但我的目標是自動生成控制器和所有視圖的腳手架。我試圖編輯我的控制器來刪除Detail視圖,它爲控制器工作(不再生成Detail塊),但它最終生成了詳細視圖,所以我認爲這可能是一個'locked'資源。僅供參考:我正在使用VS 2013 Express。 –