Parámetros reemplazables

Los parámetros reemplazables o tokens, se pueden usar dentro de archivos de proyecto para proporcionar valores para los elementos de la solución de SharePoint cuyos valores reales no se conocen durante el tiempo de diseño. Son similares en función a los tokens de plantilla estándar de Visual Studio. Para más información, consulte Parámetros de plantilla.

Formato de tokens

Los tokens comienzan y terminan con un carácter de signo de dólar ($). En la implementación, los tokens usados se reemplazan por valores reales cuando un proyecto se empaqueta en un paquete de solución de SharePoint (archivo .wsp). Por ejemplo, el token $SharePoint.Package.Name$ podría resolverse en la cadena "Probar paquete de SharePoint".

Reglas de token

Se aplican las siguientes reglas a los tokens:

  • Los tokens se pueden especificar en cualquier lugar de una línea.

  • Los tokens no pueden abarcar varias líneas.

  • El mismo token se puede especificar más de una vez en la misma línea y en el mismo archivo.

  • Se pueden especificar tokens diferentes en la misma línea.

    Los tokens que no siguen estas reglas se omiten y no generan ninguna advertencia o error.

    El reemplazo de tokens por valores de cadena se realiza inmediatamente después de la transformación del manifiesto. Este reemplazo permite al usuario editar las plantillas de manifiesto con tokens.

Resolución de nombres de token

En la mayoría de los casos, un token se resuelve en un valor específico, independientemente de dónde esté contenido. Sin embargo, si el token está relacionado con un paquete o característica, el valor del token depende de dónde se encuentre. Por ejemplo, si una característica está en el paquete A, el token $SharePoint.Package.Name$ se resuelve en el valor "Paquete A". Si la misma característica está en el paquete B, $SharePoint.Package.Name$ se resuelve en "Paquete B".

Lista de tokens

En la siguiente tabla se enumeran los tokens disponibles.

Nombre Descripción
$SharePoint.Project.FileName$ Nombre del archivo del proyecto contenedor, por ejemplo, NewProj.csproj.
$SharePoint.Project.FileNameWithoutExtension$ Nombre del archivo del proyecto sin la extensión de nombre de archivo. Por ejemplo, "NewProj".
$SharePoint.Project.AssemblyFullName$ Nombre para mostrar (nombre seguro) del ensamblado de salida del proyecto contenedor.
$SharePoint.Project.AssemblyFileName$ Nombre del ensamblado de salida del proyecto contenedor.
$SharePoint.Project.AssemblyFileNameWithoutExtension$ Nombre del ensamblado de salida del proyecto contenedor sin la extensión de nombre de archivo.
$SharePoint.Project.AssemblyPublicKeyToken$ Token de clave pública del ensamblado de salida del proyecto contenedor, convertido en una cadena. (16 caracteres en formato hexadecimal "x2").
$SharePoint.Package.Name$ Nombre del paquete contenedor.
$SharePoint.Package.FileName$ Nombre del archivo de definición del paquete contenedor.
$SharePoint.Package.FileNameWithoutExtension$ Nombre (sin la extensión) del archivo de definición del paquete contenedor.
$SharePoint.Package.Id$ Identificador de SharePoint del paquete contenedor. Si se usa una característica en más de un paquete, este valor cambiará.
$SharePoint.Feature.FileName$ Nombre del archivo de definición de la característica contenedora, por ejemplo, Feature1.feature.
$SharePoint.Feature.FileNameWithoutExtension$ Nombre del archivo de definición de la característica, sin la extensión de nombre de archivo.
$SharePoint.Feature.DeploymentPath$ Nombre de la carpeta que contiene la característica en el paquete. Este token equivale a la propiedad "Ruta de implementación" del Diseñador de características. Un valor de ejemplo es "Project1_Feature1".
$SharePoint.Feature.Id$ Identificador de SharePoint de la característica contenedora. Este token, al igual que todos los tokens del nivel de característica, solo puede ser utilizado por los archivos incluidos en un paquete a través de una característica, no los agregados directamente a un paquete fuera de una característica.
$SharePoint.ProjectItem.Name$ Nombre del elemento de proyecto (no su nombre de archivo), como se obtiene de ISharePointProjectItem.Name.
$SharePoint.Type.<GUID>.AssemblyQualifiedName$ Nombre completo del ensamblado del tipo que coincide con el GUID del token. El formato del GUID está en minúsculas y corresponde al formato Guid.ToString("D") (es decir, xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
$SharePoint.Type.<GUID>.FullName$ Nombre completo del tipo que coincide con el GUID del token. El formato del GUID está en minúsculas y corresponde al formato Guid.ToString("D") (es decir, xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Incorporación de extensiones a la lista de extensiones del archivo de reemplazo de tokens

Aunque todos los archivos que pertenecen a un elemento de proyecto de SharePoint incluido en el paquete pueden, teóricamente, usar tokens, Visual Studio busca los tokens solo en los archivos de paquete, archivos de manifiesto y en los archivos que tienen las siguientes extensiones:

  • XML

  • ASCX

  • ASPX

  • Webpart

  • DWP

    Estas extensiones se definen mediante el elemento <TokenReplacementFileExtensions> del archivo Microsoft.VisualStudio.SharePoint.targets, que se encuentra en la carpeta ...\<Archivos de programa>\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools.

    Sin embargo, puede agregar extensiones de archivo adicionales a la lista. Agregue un elemento <TokenReplacementFileExtensions> a cualquier PropertyGroup del archivo de proyecto de SharePoint definido antes de la <importación> del archivo de destinos de SharePoint.

Nota

Dado que el reemplazo de tokens se produce una vez compilado un proyecto, no debe agregar extensiones de archivo para los tipos de archivo que se compilan, como .cs, .vb o .resx. Los tokens solo se reemplazan en archivos que no están compilados.

Por ejemplo, para agregar las extensiones de nombre de archivo (.myextension y .yourextension) a la lista de extensiones de nombre de archivo de reemplazo de tokens, debería agregar lo siguiente a un archivo de proyecto (.csproj):

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
.
.
.
    <!-- Define the following property to add your extension to the list of token replacement file extensions.  -->
<TokenReplacementFileExtensions>myextension;yourextension</TokenReplacementFileExtensions>
</PropertyGroup>

Puede agregar la extensión directamente al archivo de destinos (.targets). Sin embargo, agregar la extensión modifica la lista de extensiones de todos los proyectos de SharePoint empaquetados en el sistema local, no solo los suyos propios. Esta extensión puede ser conveniente cuando es el único desarrollador del sistema o si la mayoría de los proyectos lo requieren. Sin embargo, dado que es específico del sistema, este enfoque no es portable y, por lo tanto, se recomienda agregar las extensiones al archivo del proyecto en su lugar.