При создании нового проекта для MVC3 у меня есть возможность выбрать собственный механизм просмотра. Я могу выбирать между Razor и ASPX. Есть ли способ добавить Spark в раскрывающийся список?
Добавить пользовательский viewengine в диалоговое окно «Новый проект»?
Ответы (2)
Короткий ответ: нет, не совсем так.
Длинный ответ: да, но есть одна загвоздка, требующая редактирования реестра.
New Project Dialog
построен на идее выбора сначала шаблона проекта, а затем выбора механизма просмотра, поддерживаемого этим шаблоном.
Другим удалось добавить в это окно свои собственные вещи, поэтому я воспользовался подсказками, предложенными ASP.NET MVC 3 с xUnit.net Testproject, еще одним сторонним расширением, которое какое-то время крутилось в реестре.
Сначала вам нужно создать ProjectTemplate для Visual Studio, из которого он может создать чистый проект Spark. Для полноты картины вы можете сделать это, создав новый проект Razor, перемонтировав его для Spark, а затем экспортировав шаблон с помощью меню «Файл». Снимите флажок, чтобы автоматически зарегистрировать новый экспорт в VS. Я решил упростить установку и переместил новый шаблон туда, где живут официальные шаблоны проектов MVC3 (для меня это был C:\Program Files (x86)\Microsoft VisualStudio 10.0\Common\IDE\ProjectTemplates\CSharp\Web
). Затем запустите «devenv/setup» из командной строки, чтобы VS нашел и зарегистрировал только что созданный шаблон.
Пользовательские дополнения к новому диалоговому окну должны быть добавлены здесь:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Mvc3\ProjectTemplates]
|
|- [MyOwnTemplate]
|- (REG_SZ)Title="Template title"
|- (REG_SZ)Description="Description for the box in the right"
|- [C#]
|- [Spark]
| |- (REG_SZ)Path="CSharp\\Web"
| |- (REG_SZ)Template="YourCustomCSharpSparkTemplate.zip"
| |- (REG_DWORD)SupportsUnitTests=1
|- [Razor]
|- (REG_SZ)Path="CSharp\\Web"
|- (REG_SZ)Template="YourCustomCSharpRazorTemplate.zip"
|- (REG_DWORD)SupportsUnitTests=0
Если вы не используете 64-разрядную версию, удалите ключ Wow6432Node из открывающегося узла реестра.
Теперь, когда вы перезапускаете VS и запускаете мастер создания диалогового окна проекта для MVC3, там должен быть указан недавно зарегистрированный шаблон. Когда вы выбираете свой собственный шаблон проекта, вы должны увидеть, что в раскрывающемся списке ViewEngine отображается «Spark» в качестве текущего ViewEngine.
New Project Dialog
группирует шаблоны по верхнему ключу в разделе ProjectTemplates. Поскольку MVC3 не регистрирует свои шаблоны по умолчанию в реестре, мы не знаем, под каким ключом они сгруппированы, и, следовательно, не можем добавить к ним свои собственные ViewEngine.
Вы должны добавить шаблоны T4, которые добавляют поддержку других механизмов просмотра (включая Spark). Вот ссылка, которая объясняет это: http://weblogs.asp.net/jacqueseloff/archive/2010/07/30/mvc-3-supporting-custom-view-engines.aspx
CodeTemplates
. Однако это для диалога Add view
или New view
, а не для диалога New project
...
- person Ropstah; 02.03.2011