2012-02-17 18 views
1

NSISを使用してインストーラをビルドするときに、自分のコードのsvnリビジョンを自動的に取得したいと思います。私は、コマンドラインで "svnversion"を呼び出すことでリビジョン番号を得ることができますが、ビルド時にNSISスクリプトの${define}にマップするにはどうしたらいいですか?NSISスクリプトにSVNリビジョン番号を取得

+0

のですか?ナント? msbuild?スカン?含める.. \ >> svnrev.txt " '一時ファイル "svnrev.txt" appendfileは "svnrev.txt" "SVN_REVを定義つけません!!!!" をシステム!": – thekbb

答えて

2

新しいデータ、更新ヘッダ/ !searchparse,!define /fileまたは!includeで出力を解析します。

別の方法は、あなたが構築するために何を使用している$Revision$svn keyword(詳細についてthis questionを参照してください)

+1

おかげアンダースは、私はそれがこれで作業しました"svnrev.txt" !delfile "svnrev.txt" \t DetailPrint $ {SVN_REV} ' – Dan

0

Windowsを使用している場合(使用していますか?)、TortoiseSVNのSubWCRevを使用できます。

すなわち:

  • リポジトリ関連のデータが実際取得するために、いくつかの段階で、SubWCRevは、キーワードで
  • ビルド・システム利用SubWCRevはを置き換えたNSISスクリプトのテンプレートを、持っていますレポ
  • から最新のデータとスクリプト、

例(プロジェクト内の私のテンプレートからの抽出)

// (C) 2009-$WCDATE=%Y$ 
// Assembled from $WCDATE=%Y%m%d$-r$WCREV$ 

(最後のビルド用)としてSubWCRevはマジック

// (C) 2009-2012 
// Assembled from 20120122-r1143 

新改正後の最終的なファイルに表示されます - あなたは!systemでコンパイル時に任意のコマンドを実行して、取得することができます

関連する問題