Как добавить шаблон элемента jscript или html через надстройку в Visual Studio - PullRequest
1 голос
/ 08 октября 2010

В настоящее время я работаю над надстройкой, и мне требуется функциональность для программного добавления пользовательских шаблонов элементов в проект.

В настоящее время я устанавливаю шаблоны (которые имеют формат .zip) в.. \ Visual Studio 2010 \ Templates \ ItemTemplates \.

Из надстройки я вызываю следующий код:

string templateLocation = (solution as Solution2).GetProjectItemTemplate(templateName, language);
projectToAddTo.ProjectItems.AddFromTemplate(templateLocation, nameOfNewItem);

Если шаблон элемента предназначен для файла C #, тогдаесли я использую «CSharp» для языковой переменной и помещаю шаблон в языковую папку «Visual C #» или «Visual Web Developer \ Visual C #», то все это прекрасно работает;шаблон обнаружен и правильно реализован в Visual Studio.
Однако, если я создаю шаблон JScript или HTML, метод GetProjectItemTemplate выдает исключение, если я предоставляю язык как «JScript» или «HTML».Я попытался поместить шаблоны в «ItemTemplates \ JScript (HTML)» и «ItemTemplates \ Visual Web Develerop \ JScript (HTML)», но безуспешно.

У кого-нибудь есть идеи о том, что я делаю неправильно, какие языки поддерживаются для этих пользовательских шаблонов элементов, каким должен быть языковой параметр и расположение папки?

Ответы [ 2 ]

1 голос
/ 08 октября 2010

После более подробного изучения кажется, что параметр Language в string Solution2.GetProjectItemTemplate(string TemplateName, string Language) на самом деле является языковым типом проекта, на который ориентирован шаблон элемента.Следовательно, независимо от того, является ли фактический элемент в шаблоне файлом java или файлом html, проект все равно будет CSharp или VisualBasic, и именно это следует передать в качестве параметра Language.

Кроме того, в расположениидля пользовательских элементов и шаблонов проектов не имеет значения, как называется папка, будь то Visual C #, Visual Basic, Visual Web Developer \ JScript.Имя папок влияет только на то, как оно отображается в диалоге добавления нового элемента и как оно хранится в кэше.

Кроме того, параметр TemplateName, который вы указываете при вызове GetProjectItemTemaplate, должен иметь полный путь освобождения из-под ItemTemplates.папка.Хотя он будет работать и без него, если у вас есть несколько шаблонов с одинаковыми именами в разных местах, вы получите первый, возвращенный VS.

0 голосов
/ 08 октября 2010

Мое предложение - взять HTML или JS и использовать собственное меню VS для экспорта в качестве шаблона. Затем разархивируйте шаблон и найдите параметр language в файле .vstemplate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...