Parámetros de plantilla
Si se usan parámetros en las plantillas, se pueden reemplazar los valores de las partes principales de la plantilla, como nombres de clase y espacios de nombres, cuando se crean instancias de la plantilla.Estos parámetros se reemplazan por el asistente de la plantilla que se ejecuta en segundo plano cuando el usuario hace clic en Aceptar en los cuadros de diálogo Nuevo proyecto o Agregar nuevo elemento.
Declarar y habilitar parámetros de plantilla
Los parámetros de plantilla se declaran en el formato $parameter$.Por ejemplo:
$safeprojectname$
$guid1$
$guid5$
Para habilitar la substitución de parámetros en las plantillas
En el archivo .vstemplate de la plantilla, busque el elemento ProjectItem correspondiente al elemento para el que desea habilitar el reemplazo de parámetros.
Establezca el atributo ReplaceParameters del elemento ProjectItem en true:
En el archivo de código del elemento de proyecto, incluya los parámetros donde proceda.Por ejemplo, el parámetro siguiente especifica que se debe utilizar el nombre del proyecto seguro para el espacio de nombres en un archivo:
namespace $safeprojectname$
Parámetros de plantilla reservados
La tabla siguiente muestra los parámetros de plantilla reservados que cualquier plantilla puede utilizar.
[!NOTA]
Los parámetros de plantilla distinguen entre mayúsculas y minúsculas.
Parámetro |
Descripción |
---|---|
clrversion |
Versión actual del Common Language Runtime (CLR). |
GUID [1-10] |
GUID utilizado para reemplazar el GUID del proyecto en un archivo de proyecto.Puede especificar hasta 10 GUID únicos (por ejemplo, guid1). |
itemname |
Nombre proporcionado por el usuario en el cuadro de diálogo Agregar nuevo elemento. |
machinename |
Nombre del equipo actual (por ejemplo, Equipo01). |
projectname |
Nombre proporcionado por el usuario en el cuadro de diálogo Nuevo proyecto. |
registeredorganization |
Valor de la clave del Registro de HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization. |
rootnamespace |
Espacio de nombres raíz del proyecto actual.Este parámetro solo se aplica a las plantillas de elementos. |
safeitemname |
Nombre proporcionado por el usuario en el cuadro de diálogo Agregar nuevo elemento, tras quitar todos los caracteres no seguros y los espacios. |
safeprojectname |
Nombre proporcionado por el usuario en el cuadro de diálogo Nuevo proyecto, tras quitar todos los caracteres no seguros y los espacios. |
time |
Hora actual en el formato DD/MM/AAAA 00:00:00. |
SpecificSolutionName |
Nombre de la solución.Cuando se activa "Crear directorio para la solución", SpecificSolutionName tiene el nombre de la solución.Cuando no se activa "Crear directorio para la solución", SpecificSolutionName está en blanco. |
userdomain |
Dominio del usuario actual. |
username |
Nombre de usuario actual. |
webnamespace |
Nombre del sitio web actual.Este parámetro se utiliza en la plantilla de formulario Web Forms para garantizar que los nombres de clase sean únicos.Si el sitio web está en el directorio raíz del servidor web, este parámetro de plantilla se resuelve como el directorio raíz del servidor web. |
year |
Año actual en formato AAAA. |
Parámetros de plantilla personalizados
Puede especificar sus propios parámetros y valores de plantilla, además de los parámetros de plantilla reservados predeterminados que se utilizan durante el reemplazo de parámetros. Para obtener más información, vea CustomParameters (Elemento, Plantillas de Visual Studio)
Ejemplo: Reemplazar nombres de archivos
Puede especificar nombres de archivo variables para los elementos de proyecto utilizando un parámetro con el atributo TargetFileName.Por ejemplo, podría especificar que el archivo .exe use el nombre del proyecto, especificado por $projectname$, como su nombre de archivo.
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
Ejemplo: Utilizar el nombre de proyecto para el nombre del espacio de nombres
Para utilizar el nombre del proyecto para el espacio de nombres en un archivo de clase de Visual C#, Class1.cs, utilice la sintaxis siguiente:
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{
}
}
}
En el archivo .vstemplate para la plantilla de proyecto, incluya el XML siguiente al hacer referencia al archivo Class1.cs:
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>