在 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(从左到右)。
PushRepo
和 IncrementVersion
目标都通过 <Exec>
元素执行外部命令(分别为 git.exe
和 powershell.exe
)。在 PushRepo
目标的情况下,这意味着必须安装 Git 并且 git.exe
必须位于您正在构建目标的任何系统的路径中。如果安装了 Git,但可执行文件不在 PATH 中,则需要在 Command
属性中指定可执行文件的完整路径。
请注意,push
只会将已提交的更改推送到上游存储库。要包含通过 IncrementVersion
目标所做的更改,您必须先发出 commit
。
我在一个解决方案中有三个独立的 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(从左到右)。
PushRepo
和 IncrementVersion
目标都通过 <Exec>
元素执行外部命令(分别为 git.exe
和 powershell.exe
)。在 PushRepo
目标的情况下,这意味着必须安装 Git 并且 git.exe
必须位于您正在构建目标的任何系统的路径中。如果安装了 Git,但可执行文件不在 PATH 中,则需要在 Command
属性中指定可执行文件的完整路径。
请注意,push
只会将已提交的更改推送到上游存储库。要包含通过 IncrementVersion
目标所做的更改,您必须先发出 commit
。