Пропуск специальных знаков в 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
.