Я пытаюсь выполнить эту простую команду из MSBuild (VS2015, из .target
файла), чтобы создать дату текущего мерзавца фиксации:команды MSBuild Exec всегда терпит неудачу
git show -s --format=%cd --date=format:%d.%m.%Y
Таким образом, в MSBuild Я пробовал:
<Exec Command="git show -s --format=%25cd --date=format:%25d.%25m.%25Y" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="BuildDate" />
</Exec>
Но это дает только ошибка:
1>------ Build started: Project: example, Configuration: Release Dll Win32 ------
1> fatal: invalid --pretty format: d.Y
1>D:\example\gitversion.targets(26,5): error MSB3073: The command "git show -s --format=%cd --date=format:%d.%m.%Y" exited with code 128.
Если я отправляю команду в пределах кавычки на консоль, он работает как шарм и печатает 19.12.2016
.
Я попытался следующие вещи:
Побег также
=
знак,:
, ... до сих пор не работаетИспользуйте только
Command="git show -s --format=%25ci"
-> дает также ошибкиfatal: invalid --pretty format: ci
, но работает отлично в консоли.окружают кавычки
"--format=%25ci"
-> та же ошибкавызовов с
Command="git --version"
, это работает, как ожидалось, и возвращает версию GIT (так же, как и на консоли)
Я подозреваю, что это как-то делает не принимайте значение =
, чтобы указать аргумент, но git не позволяет передавать его в виде отдельных аргументов, например разделенных пробелом.
Он по-прежнему не имеет смысла для меня, почему мне нужно бежать дважды, но он работает как шарм. – kiki