Параметры шаблона
Вы можете заменить значения в шаблоне при создании его экземпляра. Чтобы настроить эту функцию, используйте параметры шаблона. Они позволяют заменить такие значения, как имена классов и пространства имен в шаблоне. Эти параметры заменяет мастер шаблонов, запускающийся в фоновом режиме, когда пользователь добавляет новый элемент или проект.
Объявление и включение параметров шаблона
Параметры шаблона объявляются в формате $параметр$. Например:
$rootnamespace$
$guid1$
$guid5$
Включение подстановки параметров в шаблонах
В VSTEMPLATE-файле шаблона найдите элемент
ProjectItem
, соответствующий элементу, для которого требуется включить замену параметров.Задайте атрибуту
ReplaceParameters
элементаProjectItem
значениеtrue
.В файле кода для элемента проекта укажите соответствующие параметры. Например, следующий параметр указывает, что корневое пространство имен используется для пространства имен в файле:
namespace $rootnamespace$
Зарезервированные параметры шаблона
В таблице ниже перечислены параметры зарезервированного шаблона, которые могут использоваться любым шаблоном:
Параметр | Описание |
---|---|
clrversion | Текущая версия среды CLR. |
ext_* | Добавьте префикс ext_ к любому параметру, чтобы сослаться на переменные родительского шаблона. Например, ext_safeprojectname . |
guid[1–10] | GUID, используемый для замены GUID проекта в файле проекта. Можно указать до 10 уникальных GUID (например, guid1 ). |
itemname | Имя файла, в котором используется параметр. |
machinename | Имя текущего компьютера (например, Computer01). |
projectname | Имя, указанное пользователем при создании проекта. Этот параметр применяется только к шаблонам проектов. |
registeredorganization | Значение раздела реестра из HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization. |
rootnamespace | Корневое пространство имен текущего проекта, за которым следует вложенная папка текущего элемента, с заменой косых черт точками. |
defaultnamespace | Корневое пространство имен для текущего проекта. |
safeitemname | Аналогично параметру itemname , но с удалением всех небезопасных символов и пробелов, которые заменяются символом подчеркивания. |
safeitemrootname | Эквивалентно safeitemname . |
safeprojectname | Имя, указанное пользователем при создании проекта, но с удаленными небезопасными символами и пробелами. Этот параметр применяется только к шаблонам проектов. |
targetframeworkversion | Текущая версия целевого платформа .NET Framework. |
Время | Текущее время, заданное в формате на основе пользовательских параметров Windows. Пример формата времени: ДД/ММ/ГГГГ 00:00:00. |
specifiedsolutionname | Имя решения. Если параметр "Место решения и проекта в том же каталоге" не проверка имеет specifiedsolutionname имя решения. Если флажок "create solution directory" (Создать каталог решения) не установлен, specifiedsolutionname пусто. |
userdomain | Домен текущего пользователя. |
username | Имя текущего пользователя. |
webnamespace | Имя текущего веб-сайта. Этот параметр используется в шаблоне веб-формы, чтобы гарантировать уникальные имена классов. Если веб-сайт находится в корневом каталоге веб-сервера, этот параметр шаблона разрешается в корневой каталог веб-сервера. |
year | Текущий год в формате ГГГГ. |
Примечание.
Параметры шаблонов зависят от регистра символов.
Настраиваемые параметры шаблона
Вы можете указать собственные параметры шаблона и значения в дополнение к зарезервированным параметрам шаблона по умолчанию, которые используются во время замены параметров. Дополнительные сведения см. в разделе Элемент CustomParameters (шаблоны Visual Studio).
Пример: использование имени проекта в качестве имени файла
Можно указать переменные имена файлов для элементов проекта с помощью параметра в атрибуте TargetFileName
.
В следующем примере указывается, что имя исполняемого файла использует имя проекта, заданное $projectname$
.
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
Пример: использование безопасного имени проекта в качестве имени пространства имен
Чтобы использовать безопасное имя проекта для пространства имен в файле класса C#, используйте следующий синтаксис:
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{ }
}
}
В VSTEMPLATE-файл для шаблона проекта включите атрибут ReplaceParameters="true"
при ссылке на файл:
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>