Windowsアプリにコンパイル時にSVNリビジョン番号を埋め込む

c++ svn visual-studio

私の.exeに私のsvnバージョンのリソース文字列へのアクセス権を持たせたい。 私はこれを手で入力することができますが、コンパイル時にこれを埋め込むための自動化された方法をお勧めします。 Visual Studio 2008にそのような機能はありますか?

  17  6


ベストアンサー

そのファイルのリビジョンが変更された場合にのみファイルのために更新されるので、私は同様の可用性を望み、$ Rev $が不十分であることを発見しました。リポジトリのリビジョン番号に基づいたものが欲しいのですが。

今取り組んでいるプロジェクトのために、作業コピーの一番上のディレクトリから `svnversion -n`を実行し、最新のリビジョン情報を.hファイルに出力するPerlスクリプトを書きました(私は実際にそれを比較します)。私の作業コピーのバージョン管理されていないファイルに保存された復帰ファイルです。コンパイルごとに現在のリビジョン情報を上書きするのではなく、変更するかどうかはあなた次第です。必要に応じて、あなたのアプローチに応じて)私のアプリケーションコードとリソースファイルの両方で参照し、必要な場所に情報を取得します。

このスクリプトはビルド前のステップとして実行されるため、ビルドが開始される前にすべてが最新の状態になり、適切なファイルがビルドツールによって自動的に再構築されます。

21


http://tortoisesvn.net/[TortoiseSVN]に同梱されているコマンドラインツールである http://tortoisesvn.net/[SubWCRev]を使用するとどうなりますか。 $ WCREV $ $ WCDATE $などのようなトークンを含むテンプレートファイルを作成します。 次に、テンプレートファイルに対してSubWCRevを実行してコンパイラに渡される実際のソースファイルを作成するビルド前の手順を実行します。

15


それが問題を解決するならば、あなたは あなたのためにそれを埋め込むためのSVNを得ることができます]。 そのページの$ Rev $キーワードを見てください。

3


svnキーワード置換 hereをご覧ください。 私がグーグルを通して見つけたもう一つのSO質問 ここがあります!

3


antikのソリューションは私たちが使うものです。 環境変数の使用には注意してください。.hファイルは、svn rev番号が変更されたときにそれを必要とするすべてのファイルを再コンパイルさせる依存関係を持つことを保証します。

3


タイトルとURLをコピーしました