Parâmetros de modelo
Você poderá substituir os valores do modelo quando for criada uma instância dele. Para configurar essa funcionalidade, use parâmetros de modelo. Os parâmetros de modelo podem ser usados para substituir valores, como nomes de classes e namespaces, no modelo. O assistente de modelo que é executado em segundo plano quando um usuário adiciona um novo item ou projeto substitui esses parâmetros.
Declarar e habilitar parâmetros de modelo
Parâmetros de modelo são declarados no formato $parâmetro$. Por exemplo:
$rootnamespace$
$guid1$
$guid5$
Habilitar a substituição de parâmetros em modelos
No arquivo .vstemplate do modelo, localize o elemento
ProjectItem
que corresponde ao item para o qual você deseja habilitar a substituição de parâmetro.Defina o atributo
ReplaceParameters
do elementoProjectItem
comotrue
.No arquivo de código do item de projeto, inclua parâmetros conforme apropriado. Por exemplo, o seguinte parâmetro especifica que o nome do projeto seguro é usado para o namespace em um arquivo:
namespace $rootnamespace$
Parâmetros de modelo reservados
A tabela a seguir lista os parâmetros de modelo reservados que podem ser usados por qualquer modelo:
Parâmetro | Descrição |
---|---|
clrversion | Versão atual do CLR (Common Language Runtime). |
ext_* | Adicione o prefixo ext_ a qualquer parâmetro para se referir às variáveis do modelo pai. Por exemplo, ext_safeprojectname . |
guid[1-10] | Um GUID usado para substituir o GUID do projeto em um arquivo de projeto. Você pode especificar até 10 GUIDs exclusivos (por exemplo, guid1 ). |
itemname | O nome do arquivo no qual o parâmetro está sendo usado. |
machinename | O nome do computador atual (por exemplo, Computer01). |
projectname | O nome fornecido pelo usuário quando o projeto foi criado. Esse parâmetro se aplica somente a modelos de projeto. |
registeredorganization | O valor da chave do Registro de HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization. |
rootnamespace | O namespace raiz do projeto atual seguido pela subpasta do item atual, com barras substituídas por pontos. |
defaultnamespace | O namespace raiz do projeto atual. |
safeitemname | O mesmo que itemname , mas com todos os caracteres desprotegidos e os espaços substituídos por caracteres de sublinhado. |
safeitemrootname | Mesmo que safeitemname . |
safeprojectname | O nome fornecido pelo usuário quando o projeto foi criado, mas com todos os caracteres desprotegidos e espaços removidos. Esse parâmetro se aplica somente a modelos de projeto. |
targetframeworkversion | Versão atual do .NET Framework de destino. |
time | A hora atual em um formato baseado nas configurações do usuário do Windows. Um exemplo de um formato de hora é DD/MM/AAAA 00:00:00. |
specifiedsolutionname | O nome da solução. Quando a opção "Colocar solução e projeto no mesmo diretório" estiver desmarcada, specifiedsolutionname terá o nome da solução. Quando "criar diretório da solução" não estiver marcado, specifiedsolutionname estará em branco. |
userdomain | O domínio do usuário atual. |
Nome de Usuário | O nome de usuário atual. |
webnamespace | O nome do site atual. Este parâmetro é usado no modelo de formulário da Web para garantir nomes de classe exclusivos. Se o site estiver no diretório raiz do servidor Web, esse parâmetro de modelo será resolvido para o diretório raiz do servidor Web. |
ano | O ano atual no formato AAAA. |
Observação
Parâmetros de modelo diferenciam maiúsculas de minúsculas.
Parâmetros de modelo personalizados
Você pode especificar seus próprios valores e parâmetros de modelo, além dos parâmetros de modelo reservados padrão, que são usados durante a substituição de parâmetros. Para obter mais informações, consulte Elemento CustomParameters (modelos do Visual Studio).
Exemplo: usar o nome do projeto para um nome de arquivo
Você pode especificar nomes de arquivo variáveis para itens de projeto usando um parâmetro no atributo TargetFileName
.
O exemplo a seguir especifica que o nome de um arquivo executável usa o nome do projeto, especificado por $projectname$
.
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
Exemplo: usar o nome seguro do projeto para o nome do namespace
Para usar o nome seguro do projeto para o namespace em um arquivo de classe C#, use a seguinte sintaxe:
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{ }
}
}
No arquivo .vstemplate do modelo de projeto, inclua o atributo ReplaceParameters="true"
quando fizer referência ao arquivo:
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>