Поделиться через


Пропуск специальных знаков в MSBuild

Некоторые символы имеют особое значение в файлах проекта MSBuild. К ним относятся точка с запятой (;) и звездочка (*). Полный список таких специальных знаков см. в разделе Специальные символы в MSBuild.

Чтобы использовать эти специальные символы в качестве литералов в файле проекта, их необходимо задать с помощью синтаксиса %<xx>, где <xx> представляет шестнадцатеричное значение ASCII символа.

Специальные символы в MSBuild

Одним из примеров применения специальных знаков является атрибут Include списков элементов. Например, в следующем списке элементов объявлено два элемента: MyFile.cs и MyClass.cs.

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

Если требуется объявить элемент, содержащий точку с запятой в имени, используйте синтаксис %<xx>, чтобы экранировать точку с запятой и предотвратить объявление двух отдельных элементов в MSBuild. Например, следующий элемент экранирует точку с запятой и объявляет один элемент с именем MyFile.cs;MyClass.cs.

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

Кроме того, можно экранировать строки с помощью функции свойства. Например, код далее эквивалентен приведенному выше примеру.

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

Использование специального знака MSBuild в качестве символа литерала

Вместо специального знака используйте нотацию %<xx>, где <xx> представляет собой шестнадцатеричное значение символа ASCII. Например, чтобы использовать символ звездочки (*) как буквенный символ, примените значение %2A.