Я пытаюсь получить вывод git describe
в свою сборку в качестве определения препроцессора для использования в модулях управления версиями. К сожалению, это немного наоборот (не уверен, в чем проблема).
У меня было событие перед сборкой, например:
for /f "delims=" %a in ('git describe') do set GITID=%a
который работает из командной строки, но возвращает код 255 в сборке (что вызвало ошибку). Поэтому я изменил его на:
git describe > buildprops_gitid.txt
set /p GITID= < buildprops_gitid.txt
который снова работает в командной строке (и не выдает ошибок во время сборки). Файл создается с правильным значением.
В настройках препроцессора у меня есть:
BUILD_TARGETFILE=$(TargetFileName)
BUILD_GITID=$(GITID)
Первый работает нормально, помещая целевое имя файла в файл, как и ожидалось. Последнее не работает, вместо этого помещается пустая строка. Я подозреваю, что это связано с тем, что env var теряется где-то по пути.
Есть ли способ получить вывод программ CLI и использовать его как переменные ($(var)
) в Visual Studio?