Подтвердить что ты не робот

Заменить символы в переменной msbuild

Мне нужно заменить символы в переменной, которую я передаю в exec exec в msbuild 4. В частности, мне нужно заменить все вхождения обратных косых черт \ на прямые слэши / в переменной $(MSBuildProjectDirectory).

например:

<Target Name="DoStuff">
    <Exec Command="stuff.exe $(MSBuildProjectDirectoryWithSlashesFixed)/SomeFile.txt" />
</Target>

Вызываемый исполняемый файл является компонентом oracle, который не может обрабатывать косые черты в формате Windows.

Я просмотрел Property Functions, но поскольку System.String.Replace() - это метод экземпляра, а не статический метод, кажется не может использоваться для моих нужд.

Любые идеи?

4b9b3361

Ответ 1

Вы также можете использовать методы экземпляра как функции свойств (пока вы ограничиваетесь типами, зарегистрированными как безопасные).

<PropertyGroup>
  <MSBuildProjectDirectoryWSF>$(MSBuildProjectDirectory.Replace('\', '/'))</MSBuildProjectDirectoryWSF>
</PropertyGroup>

(Возможно, я пропустил некоторое экранирование на косых чертах).

Дополнительная документация доступна в Блог Visual Studio.