Freigeben über


Ersetzbare Parameter

Ersetzbare Parameter oder Token können in Projektdateien verwendet werden, um Werte für SharePoint-Projektmappenelemente anzugeben, deren tatsächliche Werte zur Entwurfszeit nicht bekannt sind. Sie haben eine ähnliche Funktion wie die standardmäßigen Visual Studio-Vorlagentoken. Weitere Informationen finden Sie unter Vorlagenparameter.

Tokenformat

Token beginnen und enden mit einem Dollarzeichen ($). Bei der Bereitstellung werden alle verwendeten Token durch die tatsächlichen Werte ersetzt, wenn ein Projekt als SharePoint-Projektmappenpaket (WSP-Datei) gepackt wird. Das Token $SharePoint.Package.Name$ könnte zum Beispiel in die Zeichenfolge „SharePoint-Testpaket“ aufgelöst werden.

Tokenregeln

Für Token gelten die folgenden Regeln:

  • Token können an beliebiger Stelle in einer Zeile angegeben werden.

  • Token können sich nicht über mehrere Zeilen erstrecken.

  • In einer Zeile und in einer Datei kann dasselbe Token mehrmals angegeben werden.

  • In einer Zeile können verschiedene Token angegeben werden.

    Token, die nicht diesen Regeln entsprechen, werden ignoriert und führen weder zu einer Warnung noch zu einem Fehler.

    Die Ersetzung von Token durch Zeichenfolgen erfolgt unmittelbar nach der Transformation des Manifests. Diese Ersetzung ermöglicht es dem Benutzer, die Manifestvorlagen mit Token zu bearbeiten.

Auflösung von Tokennamen

In den meisten Fällen wird ein Token unabhängig davon, wo es enthalten ist, in einen bestimmten Wert aufgelöst. Wenn sich das Token jedoch auf ein Paket oder ein Feature bezieht, hängt der Wert des Tokens davon ab, wo es enthalten ist. Wenn sich ein Feature zum Beispiel in Paket A befindet, wird das Token $SharePoint.Package.Name$ in den Wert „Paket A“ aufgelöst. Befindet sich das gleiche Feature in Paket B, dann wird $SharePoint.Package.Name$ in „Paket B“ aufgelöst.

Tokenliste

In der folgenden Tabelle werden die verfügbaren Token aufgelistet.

Name BESCHREIBUNG
$SharePoint.Project.FileName$ Der Name der enthaltenden Projektdatei, z. B. NewProj.csproj.
$SharePoint.Project.FileNameWithoutExtension$ Der Name der enthaltenden Projektdatei ohne die Erweiterung. Beispiel: „NewProj“.
$SharePoint.Project.AssemblyFullName$ Der Anzeigename (starke Name) der Ausgabeassembly des enthaltenden Projekts.
$SharePoint.Project.AssemblyFileName$ Der Name der Ausgabeassembly des enthaltenden Projekts.
$SharePoint.Project.AssemblyFileNameWithoutExtension$ Der Name der Ausgabeassembly des enthaltenden Projekts ohne die Erweiterung.
$SharePoint.Project.AssemblyPublicKeyToken$ Das Token des öffentlichen Schlüssels der Ausgabeassembly des enthaltenden Projekts, konvertiert in eine Zeichenfolge. (16 Zeichen im Hexadezimalformat „x2“.)
$SharePoint.Package.Name$ Der Name des enthaltenden Pakets.
$SharePoint.Package.FileName$ Der Name der Definitionsdatei des enthaltenden Pakets.
$SharePoint.Package.FileNameWithoutExtension$ Der Name der Definitionsdatei des enthaltenden Pakets (ohne Erweiterung).
$SharePoint.Package.Id$ Die SharePoint-ID für das enthaltende Paket. Wenn ein Feature in mehreren Paketen verwendet wird, ändert sich dieser Wert.
$SharePoint.Feature.FileName$ Der Name der Definitionsdatei des enthaltenden Features, z. B Feature1.feature.
$SharePoint.Feature.FileNameWithoutExtension$ Der Name der Featuredefinitionsdatei ohne die Erweiterung.
$SharePoint.Feature.DeploymentPath$ Der Name des Ordners, der das Feature im Paket enthält. Dieses Token entspricht der Eigenschaft „Bereitstellungspfad“ im Feature-Designer. Beispielwert: „Project1_Feature1“.
$SharePoint.Feature.Id$ Die SharePoint-ID des enthaltenden Features. Dieses Token kann – wie alle Token auf Featureebene – nur von Dateien verwendet werden, die über ein Feature in ein Paket eingeschlossen wurden. Das direkte Hinzufügen zu einem Paket außerhalb eines Features ist nicht möglich.
$SharePoint.ProjectItem.Name$ Der Name des Projektelements (nicht dessen Dateiname), wie abgerufen über ISharePointProjectItem.Name.
$SharePoint.Type.<GUID>.AssemblyQualifiedName$ Der durch die Assembly qualifizierte Name des Typs, der der GUID des Tokens entspricht. Die GUID umfasst Kleinbuchstaben und entspricht dem Guid.ToString("D")-Format (d. h. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
$SharePoint.Type.<GUID>.FullName$ Der vollständige Name des Typs, der der GUID im Token entspricht. Die GUID umfasst Kleinbuchstaben und entspricht dem Guid.ToString("D")-Format (d. h. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Hinzufügen von Erweiterungen zur Liste der Dateierweiterungen für die Tokenersetzung

Obwohl Token theoretisch durch jede Datei verwendet werden können, die zu einem im Paket enthaltenen SharePoint-Projektelement gehört, sucht Visual Studio standardmäßig nur in Paketdateien, Manifestdateien und Dateien mit den folgenden Erweiterungen nach Token:

  • XML

  • ASCX

  • ASPX

  • Webpart

  • DWP

    Diese Erweiterungen werden durch das Element <TokenReplacementFileExtensions> in der Datei „Microsoft.VisualStudio.SharePoint.targets“ definiert, die sich im Ordner „...\<Programme>\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools“ befindet.

    Sie können der Liste jedoch zusätzliche Dateierweiterungen hinzufügen. Fügen Sie jeder PropertyGroup in der SharePoint-Projektdatei, die vor dem <Import> der SharePoint-Zieldatei definiert ist, ein <TokenReplacementFileExtensions>-Element hinzu.

Hinweis

Da die Tokenersetzung nach der Kompilierung eines Projekts erfolgt, sollten Sie keine Dateierweiterungen für kompilierte Dateitypen (z. B. CS, VB oder RESX) hinzufügen. Token werden nur in Dateien ersetzt, die nicht kompiliert werden.

Um beispielsweise die Erweiterungen .myextension und .yourextension zur Liste der Erweiterungen für die Tokenersetzung hinzuzufügen, würden Sie einer Projektdatei (CSPROJ) Folgendes hinzufügen:

<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>

Sie können die Erweiterung direkt in die TARGETS-Datei einfügen. Durch das Hinzufügen der Erweiterung ändert sich jedoch die Liste der Erweiterungen für alle SharePoint-Projekte, die auf dem lokalen System gepackt sind, nicht nur für Ihr eigenes. Diese Erweiterung kann praktisch sein, wenn Sie der einzige Entwickler für das System sind oder wenn die meisten Ihrer Projekte sie erfordern. Da dieser Ansatz jedoch systemabhängig ist, ist er nicht portabel. Es wird daher empfohlen, dass Sie stattdessen alle Erweiterungen in die Projektdatei aufnehmen.