Escapesonderzeichen in MSBuild

Bestimmte Zeichen haben in MSBuild-Projektdateien eine besondere Bedeutung. Beispiele für die Zeichen sind Semikolons (;) und Sternchen (*). Eine vollständige Liste dieser Sonderzeichen finden Sie unter MSBuild-Sonderzeichen.

Um diese Sonderzeichen als Literale in einer Projektdatei zu verwenden, müssen sie mit der Syntax %<xx> angegeben werden, wobei <xx> den ASCII-Hexadezimalwert des Zeichens darstellt.

MSBuild-Sonderzeichen

Ein Beispiel, in dem Sonderzeichen verwendet werden, ist im Attribut Include von Elementlisten. Die folgende Liste deklariert beispielsweise zwei Elemente: MyFile.cs und MyClass.cs.

<Compile Include="MyFile.cs;MyClass.cs"/>

Wenn Sie ein Element deklarieren möchten, das ein Semikolon im Namen enthält, müssen Sie die Syntax %<xx> verwenden, um das Semikolon zu umgehen und um MSBuild daran zu hindern, zwei separate Elemente zu deklarieren. Das folgende Element umgeht beispielsweise den Semikolon und deklariert ein Element mit dem Namen MyFile.cs;MyClass.cs.

<Compile Include="MyFile.cs%3BMyClass.cs"/>

Sie können auch eine Eigenschaftenfunktion verwenden, um Zeichenfolgen mit Escapezeichen zu versehen. Dies ist beispielsweise äquivalent zu dem Beispiel oben.

<Compile Include="$([MSBuild]::Escape('MyFile.cs;MyClass.cs'))" />

So verwenden Sie ein MSBuild-Sonderzeichen als Literalzeichen

Verwenden Sie die Notation %<xx> anstelle des Sonderzeichens, wobei <xx> den Hexadezimalwert des ASCII-Zeichens darstellt. Wenn Sie ein Sternchen (*) als Literalzeichen verwenden möchten, verwenden Sie z.B. den Wert %2A.