2013-03-06 30 views
6

我需要写git信息:将二进制(exe)文件的名称,标签,分支等 写入。编写Git信息字符串到exe文件C#

需要运行字符串* | grep git,在这个文件上查看最新的git信息。 我知道,当我运行这个命令(不grep的)集信息显示,但我面临两种可能的问题:

  1. 我不知道如果我能到集信息从代码编写,运行“ git log'命令,然后得到它的输出并写入AssemblyInfo。

  2. 如果我想要使用'git log'命令,那么它不会在Windows上工作,但可能我的应用程序将在Windows上构建,而不是在Unix环境中构建。

也许你知道另一种方法来做到这一点?

+2

你想什么时候发生这种情况 - 在构建还是提交? – 2013-03-06 14:02:50

+0

我希望它发生在构建 – 2013-03-06 14:07:41

+0

我发现AssemblyInfo以'字符串'格式写入exe文件的末尾,所以'strings *'命令显示了我的内容。这是添加到这个AssemblyInfo的'git log'输出的完美方式,但是我不能在Windows机器上运行'git log'。 – 2013-03-06 14:12:39

回答

2

这通常在您的构建脚本中完成,填充AssemblyInfo的模板版本(查看模板语言的小胡子)。

此生成步骤执行以下操作:

然后你的软件构建像往常一样继续。

+0

嗯,我实际上并没有理解你的意思是“看胡子”。但是当我尝试在Windows机器上构建我的应用程序时,我遇到了问题,因为我无法运行'git'命令,因为它们不是在cmd中构建的。 – 2013-03-06 14:09:37

+1

@ user1243496:只需将git.exe的路径添加到PATH环境变量即可。 – 2013-03-06 14:10:31

+0

这听起来不错,但我需要更通用的方式,例如,如果我想建立它在机器上没有PATH环境变量中的git.exe。另一种方法是读取.git文件夹中的文件,但我觉得这是不切实际的。 – 2013-03-06 14:14:26