I wish to add a property with the date of the current Git commit to the assembly info.
From my .csproj:
<Exec Command="git -C "$(ProjectDir)." log -1 --pretty=format:%ad"
ConsoleToMSBuild="true"
Condition="'$(GitCommitDate)' == ''">
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitDate" />
</Exec>
Build output interpretation: git -C "<project directory>\." log -1 --pretty=format:-
Output: -
Using raw format:
<Exec Command="git -C "$(ProjectDir)." log -1 --pretty=format:%aD"
ConsoleToMSBuild="true"
Condition="'$(GitCommitDate)' == ''">
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitDate" />
</Exec>
Build output interpretation: git -C "<project directory>\." log -1 --pretty=format:-
Output: -
Doubling % characters to escape them:
<Exec Command="git -C "$(ProjectDir)." log -1 --pretty=format:%%aD"
ConsoleToMSBuild="true"
Condition="'$(GitCommitDate)' == ''">
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitDate" />
</Exec>
Build output interpretation: git -C "<project directory>\." log -1 --pretty=format:%-
Output: -
This attempt worked, but it gets different details from those I want:
<Exec Command="git -C "$(ProjectDir)." log -1 --pretty=format:"%%H %%cI""
ConsoleToMSBuild="true"
Condition="'$(GitCommitDate)' == ''">
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitDate" />
</Exec>
Build output interpretation: git -C "<project directory>\." log -1 --pretty=format:"%%H %%cI"
Output: 2594b984b59b061dd714ed6a88fbee2907b30a05 2024-02-14T12:33:49-06:00
So I tried adding quotes to my original attempt:
<Exec Command="git -C "$(ProjectDir)." log -1 --pretty=format:"%%aD""
ConsoleToMSBuild="true"
Condition="'$(GitCommitDate)' == ''">
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitDate" />
</Exec>
Build output interpretation: git -C "<project directory>\ManagementConsole\." log -1 --pretty=format:"%"
Output: -
What am I doing wrong?
What details am I missing that would help solve the question?
(I know that git show would be easier, but it failed the build with an exit code 128, which I figured would be more difficult to solve without further details.)
The - characters in the output and at the end of "build output interpretation" is added manually because I could not copy and paste it from my build output. I do not know why, but I thought that might be a clue.