Создание шаблона проекта visual studio
Пакет SDK для Visual Studio включает шаблоны проектов, которые создают пользовательский шаблон проекта и пользовательский шаблон элемента. Эти шаблоны включают некоторые общие подстановки параметров и создаются в виде ZIP-файлов. Они не развертываются автоматически и недоступны в экспериментальном экземпляре. Необходимо скопировать созданный ZIP-файл в каталог пользовательских шаблонов.
Шаблоны для создания шаблонов позволяют включать шаблоны в более крупные расширения. Это позволяет реализовать управление версиями в исходных файлах и создать группу проектов шаблонов в одном пакете VSIX.
Кроме того, можно настроить шаблон для установки пакетов NuGet. Дополнительные сведения см. в статье Пакеты NuGet в шаблонах Visual Studio.
Для основных сценариев создания шаблонов следует использовать мастер экспорта шаблонов, который сохраняет выходные данные в сжатом файле. Дополнительные сведения о создании базовых шаблонов см. в статье Создание шаблонов проектов и элементов.
Начиная с Visual Studio 2017 проверка наличия пользовательских шаблонов проектов и элементов больше не будет выполняться. Вместо этого расширение должно предоставлять файлы манифеста шаблона, в которых указано расположение установки этих шаблонов. Для обновления расширений VSIX можно использовать Visual Studio 2017. При развертывании расширения с помощью MSI необходимо создать файлы манифеста шаблона вручную. Дополнительные сведения см. в статье Обновление пользовательских шаблонов проектов и элементов для Visual Studio 2017. Схема манифеста шаблона описана в Справочнике по схемам манифестов шаблонов Visual Studio.
Создание шаблона проекта
Шаблон создает файл класса, значок, файл .vstemplate, редактируемый файл проекта с именем ProjectTemplate.vbproj или ProjectTemplate.csproj, а также некоторые файлы, которые обычно создаются в других типах проектов, такие как файл resources.resx, файл AssemblyInfo и файл .settings. Каждый файл кода содержит общие подстановки параметров, если это необходимо.
Добавьте и удалите элементы в проекте в соответствии с требованиями проекта. Не удаляйте редактируемый файл проекта, файл AssemblyInfo и файл .vstemplate.
Обновите файл .vstemplate, чтобы в нем была отражена информация о добавленных и удаленных элементах проекта. Элемент Project должен содержать элемент ProjectItem для каждого файла, который будет включен в шаблон.
Измените файлы кода и другое содержимое, доступное для пользователя, и добавьте соответствующие подстановки параметров.
Измените созданное содержимое в соответствии со своими потребностями.
Выполните построение проекта.
Visual Studio создает файл ZIP, содержащий шаблон. Он не развертывается и недоступен в экспериментальном экземпляре.
Создание шаблона элемента
Создайте проект Item Template.
Шаблон создает файл класса, значок, файл .vstemplate и файл AssemblyInfo. Файл класса содержит некоторые общие подстановки параметров.
Добавьте и удалите элементы в проекте в соответствии с требованиями проекта.
Обновите файл .vstemplate, чтобы в нем была отражена информация о добавленных и удаленных элементах проекта. Элемент Project должен содержать элемент ProjectItem для каждого файла, который будет включен в шаблон.
Измените файлы кода и другое содержимое, доступное для пользователя, и добавьте соответствующие подстановки параметров.
Измените созданное содержимое в соответствии со своими потребностями.
Выполните построение проекта.
Visual Studio создает сжатый файл, содержащий шаблон. Он не развертывается и недоступен в экспериментальном экземпляре.
Развертывание
Развертывание шаблона проекта или элемента
Создайте проект VSIX. Дополнительные сведения см. в разделе Шаблон проекта VSIX.
Задайте проект VSIX в качестве запускаемого проекта. В Обозревателе решений выберите узел проекта VSIX, щелкните его правой кнопкой мыши и выберите пункт Назначить запускаемым проектом.
Задайте проект для шаблона проекта (Project Template) в качестве ресурса для проекта VSIX. Откройте файл .vsixmanifest. Перейдите на вкладку Ресурсы и выберите Создать.
В поле Тип задайте значение Microsoft.VisualStudio.ProjectTemplate или Microsoft.VisualStudio.ItemTemplate.
В поле "Источник" выберите Проект в текущем решении, а затем проект, содержащий шаблон.
Нажмите клавишу F5, чтобы собрать решение. Откроется экспериментальный экземпляр.
This topic shows you how to create a template using the Export Template Wizard, which packages your template in a .zip file.
Use the Export Template Wizard
Create a project.
Use only valid identifier characters when naming a project that will be the source for a template. Otherwise, compilation errors can occur in projects that are created from the template. For more information about valid identifier characters, see Declared element names (Visual Basic) or Identifiers (C++). Alternatively, you can use Template parameters to use "safe" names for classes and namespaces.
Edit the project until it is ready to be exported as a template. For example, you might want to edit code files to indicate where parameter replacement should take place. See How to: Substitute parameters in a template.
On the Project menu, choose Export Template.
The Export Template Wizard opens.
On the Choose Template Type page, select Project Template. Select the project you want to export to a template, and then choose Next.
On the Select Template Options page, enter a name and optional description, icon, and preview image for your template. These items will appear in the New Project dialog box. Choose Finish.
The project is exported into a .zip file and placed in the specified output location, and, if selected, imported into Visual Studio.
On the Select Template Options page, enter a name and optional description, icon, and preview image for your template. These items will appear in the dialog box where you create a new project. Choose Finish.
The project is exported into a .zip file and placed in the specified output location, and, if selected, imported into Visual Studio.
To find your template in the dialog box where you create a new project, search for it by name or scroll through the list. (Filtering based on language or project type is not currently possible for user templates.)
Other ways to create project templates
You can create project templates manually by gathering the files that constitute the project into a folder and creating a .vstemplate XML file with the appropriate metadata. For more information, see How to: Manually create web templates.
If you have the Visual Studio SDK installed, you can wrap the finished template in a VSIX file for deployment by using the VSIX Project template. For more information, see Get started with the VSIX project template.
В этом разделе содержатся сведения о создании шаблона с помощью мастера экспорта шаблонов, который упаковывает шаблон в ZIP-файл.
Использование мастера экспорта шаблонов
Называя проект, который будет источником для шаблонов, используйте только допустимые символы идентификаторов. В противном случае в проектах, созданных из шаблона, могут возникать ошибки компиляции. Дополнительные сведения о допустимых символах идентификаторов см. в статьях Имена объявленных элементов (Visual Basic) и Идентификаторы (C++). Кроме того, можно использовать параметры шаблона, чтобы применять безопасные имена классов и пространств имен.
Внесите в проект все необходимые изменения, пока он не будет готов к сохранению в качестве шаблона. Например, может потребоваться отредактировать файлы кода, чтобы указать, где должна быть выполнена замена параметра. См. раздел Практическое руководство. Замена параметров в шаблоне.
В меню Проект выберите команду Экспорт шаблона.
Открывается мастер экспорта шаблонов.
На странице Выбор типа шаблона выберите Шаблон проекта. Выберите проект, который необходимо экспортировать в шаблон, а затем нажмите кнопку Далее.
Проект будет экспортирован в ZIP-файл и помещен в указанное выходное расположение, а также (если установлен соответствующий флажок) импортирован в Visual Studio.
Проект будет экспортирован в ZIP-файл и помещен в указанное выходное расположение, а также (если установлен соответствующий флажок) импортирован в Visual Studio.
Чтобы найти шаблон в диалоговом окне создания проекта, можно использовать поиск по имени или прокрутку списка. (Фильтрация по языку или типу проекта для пользовательских шаблонов сейчас не поддерживается.)
Другие способы создания шаблонов проектов
Шаблоны проектов можно создать вручную, собрав файлы, образующие проект, в папку, а затем создав VSTEMPLATE-файл XML с соответствующими метаданными. Дополнительные сведения см. в статье Практическое руководство. Создание веб-шаблонов вручную.
Если у вас установлен пакет SDK для Visual Studio, можно поместить готовый шаблон в оболочку (VSIX-файл для развертывания) с помощью шаблона Проект VSIX. Дополнительные сведения см. в разделе Приступая к работе с использованием шаблона проекта VSIX.
В первом пошаговом руководстве в этой серии создается базовая система проектов, часть 1, в которой показано, как создать базовую систему проектов. в этом пошаговом руководстве строится базовая система проектов путем добавления шаблона Visual Studio, страницы свойств и других функций. Прежде чем начать это, необходимо выполнить первое пошаговое руководство.
В этом пошаговом руководстве объясняется, как выполнить эти задачи:
создайте шаблон Visual Studio.
развертывание шаблона Visual Studio.
создайте дочерний узел типа проекта в диалоговом окне создание Project .
включите подстановку параметров в шаблоне Visual Studio.
Создание страницы свойств проекта.
создание шаблона Visual Studio
-
показывает, как создать базовый шаблон проекта и добавить его в систему проектов. здесь также показано, как зарегистрировать этот шаблон с Visual Studio с помощью ProvideProjectFactoryAttribute атрибута, который записывает полный путь к папке \ темплатес\прожектс\симплепрожект \ в системном реестре.
используя шаблон Visual Studio (vstemplate -файл) вместо базового шаблона проекта, можно управлять отображением шаблона в диалоговом окне создание Project и способе замены параметров шаблона. Файл VSTEMPLATE — это XML-файл, описывающий, как следует включать исходные файлы при создании проекта с помощью шаблона системы проектов. Сама система проектов создается путем сбора VSTEMPLATE -файла и исходных файлов в .zip файле и разворачивается путем копирования файла .zip в расположение, известное Visual Studio. Этот процесс более подробно описан далее в этом пошаговом руководстве.
В Visual Studio откройте решение симплепрожект, созданное в разделе Создание базовой системы проектов, часть 1.
В файле симплепрожектпаккаже. CS Найдите атрибут провидепрожектфактори. Замените второй параметр (имя проекта) на null, а четвертый параметр (путь к папке шаблона проекта) на ". \ \Нуллпас ", как показано ниже.
Добавьте XML-файл с именем симплепрожект. vstemplate в папку \ темплатес\прожектс\симплепрожект \ .
Замените содержимое файла симплепрожект. vstemplate следующим кодом.
В окне Свойства выберите все пять файлов в папке \ Темплатес\прожектс\симплепрожект \ и задайте для действия сборки значение зиппрожект.
в этом разделе определяется расположение и внешний вид типа проекта симплепрожект в диалоговом окне создание Project , как показано ниже.
Элемент называет шаблон проекта Симплепрожект приложением.
элемент содержит описание, которое отображается в диалоговом окне создание Project при выборе шаблона проекта.
Элемент задает значок, который отображается вместе с типом проекта симплепрожект.
элемент присваивает имя Project типу в диалоговом окне создание Project . Это имя заменяет параметр имени проекта атрибута Провидепрожектфактори.
Элемент должен соответствовать LanguageVsTemplate аргументу ProvideProjectFactory атрибута в файле симплепрожектпаккаже. cs.
В разделе описываются эти файлы, создаваемые при создании нового проекта:
Все три файла имеют значение ReplaceParameters true, что позволяет подстановку параметров. Файл Program. CS имеет значение OpenInEditor true, что приводит к открытию файла в редакторе кода при создании проекта.
дополнительные сведения об элементах в схеме шаблона Visual Studio см. в справочнике по схеме шаблонов Visual Studio.
если проект содержит более одного шаблона Visual Studio, каждый шаблон находится в отдельной папке. Для каждого файла в этой папке должно быть задано действие build зиппрожект.
Добавление минимального vsct-файла
Visual Studio должны быть запущены в режиме установки для распознавания нового или измененного шаблона Visual Studio. Для режима установки требуется наличие файла vsct . Поэтому необходимо добавить в проект минимальный файл . vsct .
Добавьте XML-файл с именем симплепрожект. vsct в проект симплепрожект.
Замените содержимое файла симплепрожект. vsct следующим кодом.
Задайте для действия сборки этого файла значение вскткомпиле. Это можно сделать только в файле CSPROJ , а не в окне " свойства ". Убедитесь, что на этом этапе для действия сборки этого файла установлено значение нет .
Щелкните правой кнопкой мыши узел Симплепрожект и выберите пункт изменить симплепрожект. csproj.
В файле CSPROJ выберите элемент симплепрожект. vsct .
Измените действие сборки на вскткомпиле.
файл проекта и закройте редактор.
Сохраните узел Симплепрожект, а затем в Обозреватель решений нажмите кнопку перезагрузить Project.
изучите шаги сборки шаблона Visual Studio
система сборки проекта VSPackage обычно выполняется Visual Studio в режиме установки при изменении vstemplate -файла или при перестроении проекта, содержащего vstemplate -файл. вы можете следовать указаниям, установив уровень детализации MSBuild на нормальный или более высокий.
В меню Сервис выберите пункт Параметры.
Разверните узел проекты и решения , а затем выберите Сборка и запуск.
Перестройте проект Симплепрожект.
Этап сборки для создания .zip файла проекта должен выглядеть следующим образом.
развертывание шаблона Visual Studio
Visual Studio шаблоны не содержат сведений о пути. Таким образом, файл шаблона .zip должен быть развернут в расположении, известном Visual Studio. Расположение папки Прожекттемплатес обычно \microsoft\visualstudio\14.0exp\projecttemplates.
Для развертывания фабрики проектов программа установки должна иметь права администратора. он развертывает шаблоны в узле установки Visual Studio: . \ Microsoft Visual Studio .\n\n-\ Common7\IDE\ProjectTemplates.
тестирование шаблона Visual Studio
проверьте фабрику проекта, чтобы узнать, создает ли она иерархию проектов с помощью шаблона Visual Studio.
сбросьте экспериментальный экземпляр пакета SDK Visual Studio.
вкл Windows 7 . в меню пуск найдите папку Microsoft Visual Studio/Пакет SDK для Microsoft Visual Studio/тулс , а затем выберите сбросить Microsoft Visual Studio экспериментальный экземпляр.
в более поздних версиях Windows: на начальном экране введите сбросить Microsoft Visual Studio экспериментальный экземпляр.
Появится окно командной строки. Если вы видите слова для продолжения нажмите клавишу Ввод. После закрытия окна откройте Visual Studio.
Перестройте проект Симплепрожект и начните отладку. Откроется экспериментальный экземпляр.
В экспериментальном экземпляре создайте проект Симплепрожект. в диалоговом окне создание Project выберите симплепрожект.
Вы увидите новый экземпляр Симплепрожект.
Создание дочернего узла типа проекта
дочерний узел можно добавить в узел типа проекта в диалоговом окне создание Project . Например, для типа проекта Симплепрожект могут существовать дочерние узлы для консольных приложений, оконных приложений, веб-приложений и т. д.
Дочерние узлы создаются путем изменения файла проекта и добавления дочерних элементов в элементы. При копировании шаблона во время сборки или развертывания каждый дочерний узел становится вложенной папкой папки шаблонов проектов.
В этом разделе показано, как создать дочерний узел консоли для типа проекта Симплепрожект.
Переименуйте папку \ Темплатес\прожектс\симплепрожект \ в \ темплатес\прожектс\консолеапп \.
В окне Свойства выберите все пять файлов в папке \ темплатес\прожектс\консолеапп \ и убедитесь, что для действия сборки задано значение зиппрожект.
В файле Симплепрожект. vstemplate добавьте следующую строку в конце раздела непосредственно перед закрывающим тегом.
В результате Шаблон консольного приложения будет отображаться как в дочернем узле консоли, так и в родительском узле Симплепрожект, который находится на одном уровне над дочерним узлом.
Сохраните файл симплепрожект. vstemplate .
В файле CSPROJ добавьте в каждый из элементов зиппрожект. Выгрузить проект, как и ранее, и изменить файл проекта.
Нахождение элементов. К каждому элементу добавьте элемент и присвойте ему консоль value. Зиппрожект
Добавьте его в файл проекта:
Сохраните файл проекта и перезагрузите проект.
Тестирование дочернего узла типа проекта
проверьте измененный файл проекта, чтобы увидеть, появился ли дочерний узел консоли в диалоговом окне New Project .
запустите программу сброса Microsoft Visual Studio экспериментального экземпляра .
Перестройте проект Симплепрожект и начните отладку. Должен отобразиться экспериментальный экземпляр
в диалоговом окне создание Project щелкните узел симплепрожект . Шаблон консольного приложения должен появиться в области шаблоны .
Разверните узел симплепрожект . Должен отобразиться дочерний узел консоли . Шаблон приложения симплепрожект будет отображаться в области шаблоны .
Замена параметров шаблона проекта
- При создании базовой системы проектов часть 1 показала, как перезаписать ProjectNode.AddFileFromTemplate метод для выполнения базовой разновидности подстановки параметров шаблона. в этом разделе рассказывается, как использовать более сложные параметры шаблона Visual Studio.
при создании проекта с помощью шаблона Visual Studio в диалоговом окне создание Project параметры шаблона заменяются строками для настройки проекта. Параметр шаблона — это специальный маркер, который начинается и заканчивается знаком доллара, например $time $. Следующие два параметра особенно полезны для включения настройки в проектах, основанных на шаблоне.
$GUID 2 $ заменяется новым идентификатором GUID. Можно указать до 10 уникальных идентификаторов GUID, например $guid $1.
$safeprojectname $ — это имя, предоставленное пользователем в диалоговом окне создание Project , которое удаляет все незащищенные символы и пробелы.
Полный список параметров шаблона см. в разделе Параметры шаблона.
Замена параметров шаблона проекта
В файле симплепрожектноде. CS удалите AddFileFromTemplate метод.
В файле \ темплатес\прожектс\консолеапп\симплепрожект.мипрож выберите свойство и измените его значение на $safeprojectname $.
В файле \ темплатес\прожектс\симплепрожект\програм.КС замените содержимое файла следующим кодом:
Перестройте проект Симплепрожект и начните отладку. Должен отобразиться экспериментальный экземпляр.
Создайте новое консольное приложение Симплепрожект. (в области типы Project выберите симплепрожект. в разделе Visual Studio установленные шаблоны выберите консольное приложение.)
В созданном проекте откройте программу Program. CS. Он должен выглядеть примерно следующим образом (значения GUID в файле будут отличаться):
Можно создать страницу свойств для типа проекта, чтобы пользователи могли просматривать и изменять свойства в проектах, основанных на шаблоне. В этом разделе показано, как создать страницу свойств, не зависящую от конфигурации. Эта основная страница свойств использует сетку свойств для отображения открытых свойств, предоставляемых в классе страницы свойств.
Создайте класс страницы свойств, производный от SettingsPage базового класса. Сетка свойств, предоставляемая SettingsPage классом, учитывает большинство типов данных-примитивов и знает, как их отображать. Кроме того, SettingsPage класс знает, как сохранять значения свойств в файле проекта.
В файле симплепрожектпаккаже. CS добавьте этот ProvideObject атрибут к SimpleProjectPackage классу:
Он регистрирует класс страницы свойств GeneralPropertyPage в com.
В файле симплепрожектноде. CS добавьте следующие два переопределенных метода в SimpleProjectNode класс:
Оба этих метода возвращают массив идентификаторов GUID страницы свойств. Идентификатор GUID Женералпропертипаже является единственным элементом массива, поэтому в диалоговом окне страницы свойств будет отображаться только одна страница.
Добавьте файл класса с именем женералпропертипаже. CS в проект симплепрожект.
Замените содержимое этого файла, используя следующий код:
GeneralPropertyPage Класс предоставляет три общедоступных свойства AssemblyName, OutputType и rootNamespace. Поскольку AssemblyName не имеет метода Set, он отображается как свойство только для чтения. OutputType является перечислимой константой, поэтому он отображается в виде раскрывающегося списка.
SettingsPage Базовый класс предоставляет ProjectMgr для сохранения свойств. BindProperties Метод использует ProjectMgr для извлечения значений материализованных свойств и установки соответствующих свойств. ApplyChanges Метод использует ProjectMgr для получения значений свойств и их сохранения в файле проекта. Метод Set свойства задает IsDirty значение true, чтобы указать, что свойства должны быть сохранены. Сохраняемость происходит при сохранении проекта или решения.
Перестройте решение Симплепрожект и начните отладку. Должен отобразиться экспериментальный экземпляр.
В экспериментальном экземпляре создайте новое приложение Симплепрожект.
Visual Studio вызывает фабрику проектов для создания проекта с помощью шаблона Visual Studio. В редакторе кода откроется новый файл Program. CS .
Тестирование страницы свойств проекта
Теперь можно проверить, можно ли изменять и изменять значения свойств.
В диалоговом окне страницы свойств миконсолеаппликатион измените свойство DefaultNamespace на MyApplication.
Выберите свойство OutputType , а затем выберите Библиотека классов.
Щелкните Применить и нажмите кнопку ОК.
Снова откройте диалоговое окно страницы свойств и убедитесь, что изменения сохранены.
Закройте экспериментальный экземпляр Visual Studio.
Повторно откройте экспериментальный экземпляр.
Снова откройте диалоговое окно страницы свойств и убедитесь, что изменения сохранены.
Закройте экспериментальный экземпляр Visual Studio.
Шаблоны проектов Visual Studio позволяют разработчикам более эффективно создавать несколько схожих проектов, определяя общий набор начальных файлов. Шаблоны проектов могут быть полностью кастомизированы в соответствии с потребностями команды разработчиков или группы и могут быть опубликованы в Visual Studio Marketplace для загрузки и использования другими людьми! После публикации разработчики могут установить шаблон и получить к нему доступ через диалоговое окно New Project в Visual Studio.
Недавно разработанное диалоговое окно New Project для Visual Studio 2019 было создано, чтобы помочь разработчикам быстрее добираться до своего кода. Используя опыт поиска и фильтрации, мы стремимся обеспечить лучшее обнаружение для конкретных шаблонов, чтобы вы могли быстрее начать разработку своего приложения.
В этом пошаговом руководстве вы научитесь:
- Созданию шаблона проекта
- Добавлению тегов или фильтров в шаблон проекта
- Развертыванию шаблона в качестве расширения с шаблоном VSIX project
Создание шаблона проекта
Добавление тегов/фильтров в шаблон вашего проекта
После того как вы создали шаблон проекта, можно добавить к нему тег или фильтры в шаблоне .vstemplate XML-файла.
-
Добавьте встроенные теги Visual Studio, а также любые пользовательские теги в шаблон проекта, используя элементы LanguageTag, PlatformTag, ProjectTypeTagв разделе TemplateDataи сохраните файл. Например, как выделено на скриншоте ниже:
Развертывание шаблона в качестве расширения с помощью шаблона VSIX project
Оберните шаблон проекта в шаблон VSIX project, чтобы развернуть его как расширение.
В Solution Explorer щелкните правой кнопкой мыши на VSIX project и выберите Set as StartUp Project. Ваш Solution Explorer должен теперь выглядеть примерно так (с выделенным жирным VSIX project):
- Кликните Assets и выберите New.
- Установите поле Type как Microsoft.VisualStudio.ProjectTemplate.
- Установите поле Source как A project in current solution.
- Установите поле Project в качестве шаблона проекта.
Есть предложения?
Мы продолжаем работать над нашими инструментами, и для этого нам нужна ваша помощь! Пожалуйста, поделитесь своими отзывами/комментариями ниже, или через Developer Community Visual Studio, или твитнув нашей команде @VisualStudio.
Читайте также: