Пользовательские шаблоны проектов One ASP.NET в Visual Studio 2013

Цель:

Интегрируйте шаблоны проектов в коллекцию «One ASP.NET» Visual Studio 2013.

Новый проект ASP.NET с поддельным пользовательским шаблоном


Задний план:

Проект «подлежащий распространению» начался как новый проект веб-приложения ASP.NET с использованием шаблона Empty и проверенными «папками и ссылками» MVC и веб-API. Оттуда я добавил свою любовь и привязанность и использовал Шаблон экспорта. Почтовый индекс находится в My Documents > Visual Studio 2013 > My Exported Templates. Если Visual Studio установила шаблон за вас, дубликат zip помещается в My Documents > Visual Studio 2013 > Templates > ProjectTemplates. Вот тут и начинается проблема...


Проблема:

В Visual Studio шаблон находится в ветви дерева Visual C#, а не в пользовательском шаблоне внутри шаблона веб-приложения ASP.NET. облом. Еще более странно, что шаблон устанавливается только на C#, а не в его подпапку Web.

В онлайн-документации MSDN упоминается <ProjectSubType> в файле .vstemplate, который был пуст, когда я исследовал, но даже явное добавление Web не изменило местоположение пользовательского интерфейса. На самом деле это не имеет ничего общего с моей целью, но кажется, что VS2013 не соблюдает некоторые XML-коды в .vstemplate?

Больше информации:

Я начал копаться в Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\ и одной из странных вещей, которые я заметил, были два отдельных «дерева папок»: {root}\Web\CSharp\1033 и {root}\CSharp\Web\1033.

Первое дерево содержало WebTemplate45 и его проект WebApplication45Dev12.vstemplate, иллюстрирующий упомянутые выше значения ProjectType и ProjectSubtype. Имитация этого ничего не изменила.

Второе дерево также содержало WebTemplate45 с включенным WebTemplate.vstemplate. Этот был значительно другим, потому что его Type=ProjectGroup и он ссылался на TemplateGroupID и любопытный тег WizardExtension, который ссылался на OneASPNetProjectTemplateWizard. Я предполагаю, что это шаблон папы, который отображает те, что показаны на изображении.


Вопросы)

Что нужно для доставки пакета проекта во всплывающем окне «One ASP.Net»? Изменения в реестре? VSIX?

Если это невозможно, есть ли способ клонировать окно папочки для всех пользовательских проектов? Бывший. представьте себе окно, отображаемое только с перечисленными дочерними шаблонами компании.


Использованная литература:

http://msdn.microsoft.com/en-us/library/xwkxbww4.aspx

http://www.asp.net/mvc/tutorials/mvc-4/custom-mvc-templates


person one.beat.consumer    schedule 25.03.2014    source источник


Ответы (1)


Вы видели образец Hot Towel MVC от John Papa? http://visualstudiogallery.msdn.microsoft.com/1eb8780d-d522-4dcf-bf56-56f0eab305c2

При открытии файла VSIX в WinRAR ключевые биты в HotTowelSpa.2013.vsix\ProjectTemplates\HotTowelSpaProjectTemplate.cshtml\HotTowelSpaProjectTemplate.cshtml.vstemplate выглядят так:

<ProjectType>CSharp</ProjectType>
<ProjectSubType>Web</ProjectSubType>
<TemplateGroupID>Web</TemplateGroupID>

Изменить

Действительно, похоже, что вам нужно конкретно указать, что тип проекта — MVC: http://www.asp.net/mvc/tutorials/mvc-4/custom-mvc-templates

Со страницы:

Для атрибута Type каждого элемента должно быть задано значение Microsoft.VisualStudio.Mvc.Template. Это пользовательское пространство имен, которое понимает только мастер проектов MVC.

Простого добавления файлов в VSIX недостаточно для регистрации шаблонов с помощью мастера MVC. Вам необходимо предоставить мастеру MVC такую ​​информацию, как имя шаблона, описание, поддерживаемые механизмы просмотра и язык программирования. Эта информация передается в настраиваемых атрибутах, связанных с элементом для каждого файла vstemplate.

Глядя в extensions.vsixmanifest, я действительно вижу <Asset ... ProjectType="MVC"... и активы, отмеченные Type="Microsoft.VisualStudio.Mvc.Template"

person Steve Andrews    schedule 28.03.2014
comment
Это для MVC4 и всех шаблонов до шаблонов стиля One ASP.Net. В реестре все по другому, как и в файловой системе. Поиграйте с .vstemplates, установленными с 2013, и вы увидите, что я испытываю. Все изменилось. :) - person one.beat.consumer; 28.03.2014