Ich versuche, von MSBuild diesen einfachen Befehl auszuführen (VS2015, aus einer .target
-Datei) das Datum des aktuellen git zu erzeugen begehen:MSBuild Exec-Befehl schlägt immer
git show -s --format=%cd --date=format:%d.%m.%Y
So in MSBuild ich versucht habe:
<Exec Command="git show -s --format=%25cd --date=format:%25d.%25m.%25Y" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="BuildDate" />
</Exec>
Aber es ergibt sich nur ein Fehler:
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.
Wenn ich den Befehl in der Post Anführungszeichen auf der Konsole, es funktioniert wie ein Charme und druckt 19.12.2016
.
ich folgende Dinge ausprobiert haben:
Flucht auch die
=
Zeichen,:
, ... noch nichtNutzung funktioniert nur
Command="git show -s --format=%25ci"
-> Erträge auch ein Fehlerfatal: invalid --pretty format: ci
aber funktioniert gut in der Konsole.Surround mit Zitaten
"--format=%25ci"
-> gleiche FehlerAnruf mit
Command="git --version"
, das funktioniert wie erwartet und gibt die git-Version (die gleiche wie auf der Konsole)
Ich vermute, dass es irgendwie tut akzeptiere nicht die =
, um das Argument anzugeben, aber git lässt mich nicht als separate Argumente übergeben, z durch ein Leerzeichen getrennt.
Es ist noch nicht wirklich Sinn für mich, warum ich es zweimal entkommen müssen, aber es funktioniert wie ein Zauber. – kiki