我想在我的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
但是,如果我在Ubuntu 18.04上使用dotnet build
执行上述操作,则会在我的version.txt
中得到以下内容:
Git commit %h committed on %cd by %cn
我应该如何重构Exec
元素,以便它可以在Windows (Visual Studio,Rider或dotnet CLI)和Linux (Rider或dotnet CLI)上运行?
<Exec Command="git log -1 --format="Git commit %25h committed on %25cd by %25cn" --date=iso > "$(ProjectDir)/version.txt"" />
的结果是什么? - Troopers