Usar escape para caracteres especiais no MSBuild
Determinados caracteres têm significado especial em arquivos de projeto do MSBuild. O ponto-e-vírgula (;
) e os asteriscos (*
) são exemplos de caracteres. Para obter uma lista completa desses caracteres especiais, confira Caracteres especiais do MSBuild.
Para usar esses caracteres especiais como literais em um arquivo de projeto, eles precisam ser especificados com a sintaxe %<xx>
, em que <xx>
representa o valor hexadecimal ASCII do caractere.
Caracteres especiais do MSBuild
Um exemplo de quando os caracteres especiais são usados é no atributo Include
de listas de itens. Por exemplo, a seguinte lista de itens declara dois itens: MyFile.cs e MyClass.cs.
<Compile Include="MyFile.cs;MyClass.cs"/>
Caso queira declarar um item que contenha um ponto e vírgula no nome, use a sintaxe %<xx>
para fazer o escape do ponto e vírgula e evitar que o MSBuild declare dois itens separados. Por exemplo, o item a seguir escapa o ponto e vírgula e declara um item denominado MyFile.cs;MyClass.cs
.
<Compile Include="MyFile.cs%3BMyClass.cs"/>
Também é possível usar uma função de propriedade para fazer o escape de cadeias de caracteres. Por exemplo, isso equivale ao exemplo anterior.
<Compile Include="$([MSBuild]::Escape('MyFile.cs;MyClass.cs'))" />
Para usar um caractere especial do MSBuild como um caractere literal
Use a notação %<xx>
no lugar do caractere especial, em que <xx>
representa o valor hexadecimal do caractere ASCII. Por exemplo, para usar um asterisco (*
) como um caractere literal, use o valor %2A
.