在 MsBuild 启动之前递增版本然后将更改推送到 Git

Incrementing version then pushing change to Git before MsBuild kicks off

我在一个解决方案中有三个独立的 MVC 网站,我正在努力改进它们的发布过程。在我的发布构建开始之前,我想增加共享版本文件中的版本,然后使用 Git 推送此更改。我有一个增加版本的 powershell 脚本,它运行良好,但我无法找到如何将这些更改作为构建的一部分进行推送。

任何帮助或建议都会很棒。 提前致谢!

您应该将那部分作为发布版本。添加用于递增版本号和推送存储库的目标,并使您的发布目标依赖于它们:

<Target Name="IncrementVersion">
  <Exec Command="powershell.exe -File C:\path\to\your.ps1" />
</Target>

<Target Name="PushRepo">
  <Exec Command="git push ..." />
</Target>

<Target Name="Release" DependsOnTargets="IncrementVersion; PushRepo">
  ...
</Target>

构建目标将首先构建其依赖项,in the order they appear(从左到右)。

PushRepoIncrementVersion 目标都通过 <Exec> 元素执行外部命令(分别为 git.exepowershell.exe)。在 PushRepo 目标的情况下,这意味着必须安装 Git 并且 git.exe 必须位于您正在构建目标的任何系统的路径中。如果安装了 Git,但可执行文件不在 PATH 中,则需要在 Command 属性中指定可执行文件的完整路径。

请注意,push 只会将已提交的更改推送到上游存储库。要包含通过 IncrementVersion 目标所做的更改,您必须先发出 commit