Я хочу сделать это в моем проекте ASP.NET Core 2.2:
git log -1 --format="Git commit %h committed on %cd by %cn" --date=iso
Но затем в качестве шага предварительной сборки я включил его в csproj так:
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="git log -1 --format="Git commit %25%25h committed on %25%25cd by %25%25cn" --date=iso > "$(ProjectDir)/version.txt"" />
</Target>
Это работает в Windows (если я правильно понимаю, %25
- это процент в терминах MSBuild, а двойной процент - это экранирование командной строки, поэтому мы имеем %25%25
). Это дает мне такой вид version.txt
:
Git commit abcdef12345 committed on 2019-01-25 14:48:20 +0100 by Jeroen Heijmans
Но если я выполню вышеупомянутое с dotnet build
в Ubuntu 18.04, тогда я получу это в моем version.txt
:
Git commit %h committed on %cd by %cn
Как я могу реструктурировать свой элемент Exec
таким образом, чтобы он работал как в Windows (Visual Studio, Rider или dotnet CLI), так и в Linux (Rider или dotnet CLI)?