在VS项目中通过GIT生成版本号作为编译版本号

本文介绍了如何在Visual Studio (VS)项目中利用Git的commit信息生成编译版本号。面对Git的SHA散列码问题,作者提出取commit次数加上SHA码片段作为版本号。为了解决Windows环境下执行Git命令的难题,文章提到了使用msysgit和Git Bash,并编写批处理脚本来自动替换AssemblyInfo.cs文件中的版本号,确保每次编译都能更新版本信息。
摘要由CSDN通过智能技术生成

上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号。虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟,但少有文章提及如何具体在 Windows 平台来获得版本号。这让我有了迫切得到方法的希望。下面会具体实现如何在VS中使用Git版本号作为编译产生的文件版本号。

上篇博客 《在VS项目中使用SVN版本号作为编译版本号》

将 GIT 的 commit 作为 .Net 项目编译后生成dll的文件版本号主要有以下几个困难。

  • GIT 没有一个数字的序号,而是一个SHA散列码;

  • GIT 提供的命令在 linux 十分方便,在 Windows 下需要额外的工具。

    第一个问题好解决,我们取当前文件夹 commit 的次数加上截取一段 SHA 码就可以作为文件版本号的最后一位。第二个问题目前想到的方法是调用 msysgit 提供的 Git Bash 来执行命令。

    好了,首先我们依旧得找到 msysgit 的安装目录,一查之下头就大了,各个地方的路径都感觉不靠谱,最后还是选用了
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Git_is1InstallLocation ,当然也可以通过 temp 环境变量来获取路径,安装时选择第二或第三项:

git-setup

然后参照 Git Bash 的快捷方式拼接了下 call 的语句。写了一个 sh 文件来获得版本号,并保存到文件:

# file name: git_ver.sh
#!/bin/bash 
VER_FILE=git_version.tmp
LOCALVER=`git rev-list HEAD | wc -l | awk '{print $1}'`
VER=r$LOCALVER
VER="$VER $(git rev-list HEAD -n 1 | cut -c 1-7)"
GIT_VERSION=$VER
echo $GIT_VERSION>$VER_FILE
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值