Параметры шаблона

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

Объявление и включение параметров шаблона

Параметры шаблона объявляются в формате $параметр$. Например:

  • $rootnamespace$

  • $guid1$

  • $guid5$

Включение подстановки параметров в шаблонах

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

  2. Задайте атрибуту ReplaceParameters элемента ProjectItem значение true.

  3. В файле кода для элемента проекта укажите соответствующие параметры. Например, следующий параметр указывает, что корневое пространство имен используется для пространства имен в файле:

    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 Имя решения. Если установлен флажок "create solution directory" (Создать каталог решения), 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>

См. также