add tag
Lyndon Gingerich
I wish to add a property with the date of the current Git commit to the assembly info.

From my .csproj:

```csproj
<Exec Command="git -C &quot;$(ProjectDir).&quot; 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:

```csproj
<Exec Command="git -C &quot;$(ProjectDir).&quot; 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:

```csproj
<Exec Command="git -C &quot;$(ProjectDir).&quot; 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:

```csproj
<Exec Command="git -C &quot;$(ProjectDir).&quot; log -1 --pretty=format:&quot;%%H %%cI&quot;"
	  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:

```csproj
<Exec Command="git -C &quot;$(ProjectDir).&quot; log -1 --pretty=format:&quot;%%aD&quot;"
	  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.
Top Answer
Lyndon Gingerich
Right, % is "%25" in msbuildish. https://stackoverflow.com/questions/41227419/msbuild-exec-command-always-fails https://software.codidact.com/posts/290818/290831#answer-290831

This room is for discussion about this question.

Once logged in you can direct comments to any contributor here.

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.