我正在尝试从 MSBuild(VS2015,从文件)执行这个简单的命令.target来生成当前 git 提交的日期:
git show -s --format=%cd --date=format:%d.%m.%Y
Run Code Online (Sandbox Code Playgroud)
所以在 MSBuild 中我尝试过:
<Exec Command="git show -s --format=%25cd --date=format:%25d.%25m.%25Y" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="BuildDate" />
</Exec>
Run Code Online (Sandbox Code Playgroud)
但它只会产生一个错误:
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.
Run Code Online (Sandbox Code Playgroud)
如果我将引号内的命令发布到控制台,它会像魅力一样工作并打印19.12.2016.
我尝试过以下操作:
逃脱也=标志,,:...仍然不起作用
仅使用Command="git show -s --format=%25ci"-> 也会产生错误fatal: invalid --pretty format: ci,但在控制台中工作正常。
用引号引起来"--format=%25ci"-> 相同的错误
调用Command="git --version",这会按预期工作并返回 git 版本(与控制台上相同)
我怀疑它以某种方式不接受=指定参数,但 git 不会让我将它作为单独的参数传递,例如用空格分隔。
你想%25逃跑%,所以你的命令变成
<Exec Command="git show -s --format=%25%25cd --date=format:%25%25d.%25%25m.%25%25Y" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="BuildDate" />
</Exec>
Run Code Online (Sandbox Code Playgroud)
请参阅此处了解MSBuild 转义字符
| 归档时间: |
|
| 查看次数: |
1142 次 |
| 最近记录: |