6

新しいScaffoldを追加する方法や、新しいVisual Studio 2013 Scaffoldingで使用されるScaffolding機能を上書きする方法はありますか?Visual Studio 2013スキャフォールディングで使用される新しい足場を追加するには?

私がインターネット上で見つけることができる唯一のドキュメントは、CodeTemplatesフォルダを使用してT4テンプレートを上書きする方法です。 Add> 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の部分的なビューを足場にしたいということです。また、Scaffoldには、リソースファイルを取得し、別の言語のローカライズされたリソースファイルを生成するツールが必要です。

+0

彼は T4Scaffoldingの変更に関する第50回分でスティーブ・サンダーソンによるこのビデオに示すように、それはMVC3更新2で行われた仕方.Scaffolderの属性は、ScaffolderのサブクラスであるT4Scaffolding.ControllerScaffolderに属します。 Scaffolding - ASP.NET、NuGet、Entity FrameworkコードFirst and More http://channel9.msdn.com/Events/MIX/MIX11/FRM13?format=smooth 私は、ControllerScaffolderAttributeクラスが登録したMVCツールGUI、多分GUIで選択されるいくつかのインターフェースを実装する)は、VS 2013の新しいMVC 5 Add Controllerダイアログボックスで同様に動作します。 – Rad

+0

Steve Andersonにも、このプロセスの詳細が記載された一連のブログがあります。http: //blog.stevensanderson.com/2011/04/06/mvcscaffolding-overriding-the-t4-templates/ – Polynomial

答えて

3

Visual Studio 2013 RTMでは完全にカスタムのスキャナーを追加することはできません。あなただけの次のカスタマイズを行うことができます。

  1. あなたは、コントローラ、エリア、ビューの既存のT4テンプレートを編集したり、上書きすることができ、など
  2. 既存のMVCビューに表示されますカスタムビューscaffoldersを追加することができますスキャフォルダー

Visual Studioチームは、将来のVisual Studioのアップデートでカスタムスキャフォルダーサポートを再度有効にする作業を進めています。

今日のカスタムビューscaffolderを追加するには:

  1. そこにサブフォルダを作成しますCodeTemplates
  2. というフォルダを追加VS2013
  3. を任意のASP.NETプロジェクトを作成しますが依存MvcViewまたはMvcViewWithoutModelどちらかと呼ばれますあなたのカスタムビューテンプレートが強く型付けされたビューであるかどうかについて
  4. ファイルを<templatename>.<lang>.t4の形式で作成します。ここで<templatename>は、t MVC View scaffolderのドロップダウンリストを表示し、<lang>csまたはvbです。

VS2013の既定のリストから既存のスキャフォルダーをコピーしてカスタマイズすることができます。あなたは、組み込みのここからscaffolders取得することができます。

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 

既存scaffolderと同じ名前を使用する場合は、別のscaffolderから呼び出された場合でも、それは、組み込みのscaffolderを上書きします。たとえば、MVCコントローラのscaffolderは、プロジェクトにあるオーバーライドビューのスキャフォルダーを使用します。

2014年4月22日更新

今のVisual Studio 2013のプレビュー更新2が利用可能であること、完全なカスタムscaffoldersを書き込むことが可能です。

カスタムscaffolderを作成する方法をウォークスルーこのブログの記事をチェックアウト:Creating a Custom Scaffolder for Visual Studio

+0

こんにちは@Eilon。まず、情報をありがとう。しかし、それについてのニュースはありますか? CreateOrEditビューを作成することを楽しみにしています。 –

+1

@RafaelMerlin今サポートされているカスタムビューの足場を追加したい場合は、私はちょうどそれを行う方法について私の答えにいくつかの情報を追加しました。 – Eilon

+0

あなたの答え@エロンに感謝します。私はCreateOrEditビュー用の新しいテンプレートを作成することができました。しかし私はコントローラとすべてのビューを自動的に生成するスキャフォールディングを目指していました。私は詳細ビューを削除するためにコントローラを編集しようとしましたが、それはコントローラのために働いていました(詳細ブロックはもう生成されません)が、とにかく詳細ビューを生成してしまったので、これはロックされたリソース。参考:VS 2013 Expressを使用しています。 –

関連する問題