2013-03-06 6 views
6

git情報を書く必要があります。バイナリ(exe)ファイルに をコミットします。Git情報文字列をexeファイルに書き出します。C#

文字列*を実行する必要があります。 grep gitを実行して、最新のGit情報を表示するだけです。 私は(grepをせずに)このコマンドを実行するとAssemblyInfoが表示されていることを知っているが、私は2つの可能性の問題に直面している:私は 'を実行するために、コードからAssemblyInfoに書き込むことができるかどう

  1. 私はわかりませんgit log 'コマンドを実行し、その出力を取得してAssemblyInfoに書き込みます。

  2. 私は 'git log'コマンドを使いたいのですが、Windowsでは動作しませんが、私のアプリケーションはWindows上で構築され、UNIX環境では構築されない可能性があります。

多分あなたはそれを行う別の方法を知っていますか?

+2

ビルド時や提出時には、これをいつ実行しますか? –

+0

私はそれがビルドで起こることを望む –

+0

AssemblyInfoは 'string'形式のexeファイルの最後に書き込まれているので、 'strings *'コマンドはそこに何を表示しているのですか?このAssemblyInfoの 'git log'出力に単純に追加するのに最適な方法ですが、Windowsマシンでは 'git log'を実行できません。 –

答えて

2

これは通常、ビルドスクリプトで実行され、AssemblyInfoのテンプレートバージョン(テンプレート言語であるmustacheを参照)を埋めています。

このビルドステップは、以下のん:

ソフトウェアのビルドは、通常通り続きます。

+0

まあ、私は実際にあなたが「口ひげを見る」ということを理解していませんでした。しかし、Windowsマシン上で私のアプリケーションをビルドしようとすると問題に直面しています。なぜならcmdでビルドされていないので、 'git'コマンドを実行できないからです。 –

+1

@ user1243496:git.exeのパスを 'PATH'環境変数に追加するだけです。 –

+0

これは素晴らしいとは言えますが、私はもっと普遍的な方法が必要です。たとえば、マシン上に構築する場合は、PATH環境変数にgit.exeを入れないでください。もう一つの方法は.gitフォルダ内のファイルを読むことですが、私は実際的ではないと感じています。 –

関連する問題