在.NET项目中包含Git修订号

时间:2012-02-05 20:44:14

标签: .net vb.net visual-studio git

我正在使用Git进行.NET项目的源代码控制。有没有办法在编译时将当前的Git版本号包含在我的EXE中?

我希望能够为“关于”对话框或类似对话框提供修订号。也许有一种方法可以在构建之前更新Settings.vb吗?

2 个答案:

答案 0 :(得分:1)

可能的方法就是这样,

1 Programmatically printing git revision and checking for uncommitted changes

按照这篇文章了解如何从工作副本中查询修订信息。

2修改您的VB.NET项目文件,以便在编译之前使用上面的查询结果更新您的一个文件以将此信息包含在您的可执行文件中。

第二步需要一些脚本技能。如果您熟悉MSBuild脚本,那就不应该太难了。

就个人而言,我可以在.NET中编写自己的控制台应用程序来执行上述命令,然后将其包含在PreBuild事件中。

答案 1 :(得分:1)

Lex Li的手动操作的替代方法是使用MSBuildVersioning机制(也可用作NuGet package)。这需要在你的csproj文件中进行一些调整(NuGet包会为你做的),但它允许你指定一个"模板"将在构建时处理的文件,以填写您已决定包含在模板中的任何信息。虽然文档似乎没有更新,但最新版本适用于Git,Mercurial和Subversion存储库。可用的git特定标签包括REVNUM(修订号),REVID(散列,更有可能是有用的),DIRTY(有未提交的更改),BRANCH(当前分支)和TAGS(任何标签)与修订相关联。)