2013-03-06 31 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