首页 > 解决方案 > 需要在安装程序的名称中指定最新的 git 哈希

问题描述

考虑一下 Git 安装在 Windows 中并且仅在 Git Bash 中可用,而不是在 Windows cmd 环境中可用的情况。拥有一个 vdproj 来为应用程序创建安装程序,但需要将最新的 git 哈希插入到 MSI 包的名称中。例如,目前它产生:Behnama.msi 但我们需要它来产生:Behnama_49ee23d3b33ba0fa5ce0ac128f50ed00345e9ce3.msi 当我在 Git Bash 中输入“git log”时,哈希 49ee... 是顶部的内容。当创建一个新的提交时,然后来构建 vdproj,我希望以 msi 文件的名称更改哈希。

标签: windows-installervdprojgit-hash

解决方案


一个解决方案是安装 ActivePerl 或任何 perl 二进制文件以便能够运行 perl 脚本。然后将其作为构建后事件运行。这个 perl 脚本可以获得我想要的哈希值:

$folder = '';
while (! -d "$folder.git") {
    $folder .= '../';
}
open IF, "$folder.git/logs/HEAD" or die $!;
while (<IF>) {
    s/\s+$//;
    $lastline = $_ if $_;
}
close IF;
@ar = split /\s+/, $lastline;
print "$ar[1]\n";

最后一条语句可能是这样的:

rename("Behnama.msi", "Behnama_$ar[1].msi");

反而。


推荐阅读