Usar caracteres de escape especiales en MSBuild

Ciertos caracteres tienen un significado especial en archivos del proyecto de MSBuild. Algunos ejemplos de estos caracteres son los signos de punto y coma (;) y los asteriscos (*). Para obtener una lista completa de estos caracteres especiales, vea Caracteres especiales de MSBuild.

Para utilizar estos caracteres especiales con su significado literal en un archivo de proyecto, es preciso especificarlos con la sintaxis %<xx>, donde <xx> representa el valor hexadecimal ASCII del carácter.

Caracteres especiales de MSBuild

Un ejemplo de dónde se utilizan los caracteres especiales se encuentra en el atributo Include de las listas de elementos. Por ejemplo, la siguiente lista de elementos declara dos elementos: MyFile.cs y MyClass.cs.

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

Si quiere declarar un elemento que contiene un punto y coma en el nombre, debe usar la sintaxis %<xx> para aplicar una secuencia de escape al punto y coma, y evitar que MSBuild declare dos elementos independientes. Por ejemplo, el elemento siguiente escapa el punto y coma y declara un elemento denominado MyFile.cs;MyClass.cs.

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

También puede usar una función de propiedad para escapar las cadenas. Por ejemplo, esto es equivalente al ejemplo anterior.

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

Para utilizar un carácter especial de MSBuild como carácter literal

Utilice la notación %<xx> en lugar del carácter especial, donde <xx> representa el valor hexadecimal del carácter ASCII. Por ejemplo, para usar un asterisco (*) como un carácter literal, utilice el valor %2A.