Parâmetros de modelo
Usando parâmetros em seus modelos, você pode substituir os valores de partes principais de modelo, como nomes de classes e namespaces, quando o modelo é instanciado.Esses parâmetros são substituídos pelo assistente de modelo que executa em segundo plano quando um usuário clica OK nas caixas de diálogo New Project e Add New Item.
Declarando e ativando parâmetros de modelo
Parâmetros de modelo são declarados no formato $parameter$.Por exemplo:
$safeprojectname$
$guid1$
$guid5$
Para ativar substituição de parâmetro nos modelos
No arquivo .vstemplate do modelo, localize o elemento de ProjectItem que corresponde ao item que você deseja ativar substituição de parâmetro.
Defina o atributo ReplaceParameters do elemento ProjectItem como true.
No arquivo de código para o item de projeto, inclua parâmetros no código onde for apropriado.Por exemplo, o parâmetro a seguir especifica que o nome do projeto seguro seja usado para o namespace no arquivo:
namespace $safeprojectname$
Parâmetros reservados do modelo
A tabela a seguir lista os parâmetros reservados do modelo que podem ser usados por qualquer modelo.
Observação |
---|
Os parâmetros do modelo diferenciam maiúsculas de minúsculas. |
Parâmetro |
Descrição |
---|---|
clrversion |
Versão atual do Common Language Runtime (CLR). |
GUID [1-10] |
Um GUID usado para substituir o GUID de projeto em um arquivo de projeto.Você pode especificar até 10 GUIDs exclusivos (por exemplo, guid1). |
itemname |
O nome fornecido pelo usuário na caixa de diálogo Add New Item. |
machinename |
O nome do computador atual (por exemplo, Computer01). |
projectname |
O nome fornecido pelo usuário na caixa de diálogo New Project. |
registeredorganization |
O valor da chave do registro HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization. |
rootnamespace |
O namespace raiz do projeto atual.Este parâmetro se aplica somente a modelos de item. |
safeitemname |
O nome fornecido pelo usuário na caixa de diálogo Add New Item, com todos os caracteres inseguros e espaços removidos. |
safeprojectname |
O nome fornecido pelo usuário na caixa de diálogo New Project, com todos os caracteres inseguros e espaços removidos. |
time |
A hora atual no formato DD/MM/YYYY 00:00:00. |
SpecificSolutionName |
O nome da solução.Quando “criar o diretório de solução” está marcado, SpecificSolutionName tem o nome da solução.Quando “criar o diretório de solução” não é verificado, SpecificSolutionName está em branco. |
userdomain |
O domínio atual do usuário. |
username |
O nome de usuário atual. |
webnamespace |
O nome do atual site Web.Este parâmetro é usado no modelo de forma Web para garantir nomes exclusivos classe.Se o site Web está na diretório raiz do servidor Web, esse parâmetro do modelo resolve para o diretório raiz da Web Server. |
year |
O ano atual no formato YYYY. |
Parâmetros personalizados do modelo
Você pode especificar seus próprios parâmetros e valores de modelo, além dos parâmetros reservados do modelo padrão que são usados durante a substituição de parâmetro. Para obter mais informações, consulte Elemento CustomParameters (modelos do Visual Studio)
Exemplo: Substituindo nomes de arquivos
Você pode especificar nomes de arquivo variáveis para itens de projeto usando um parâmetro com o atributo TargetFileName.Por exemplo, você poderia especificar que o arquivo .exe usa o nome do projeto, especificado por $projectname$, como o nome de arquivo.
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
Exemplo: Usando o nome do projeto para o nome do namespace
Para usar o nome do projeto para o nome do namespace em um arquivo de classe do Visual C#, Class1.cs, use a seguinte sintaxe:
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{
}
}
}
No arquivo .vstemplate para o modelo de projeto, inclua o seguinte XML ao fazer referência ao arquivo Class1.cs:
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>