質問

TortoiseSVNとVisual Studio 2008を使用しています。 すべてのビルドでプロジェクトのassemblyinfo.csをsvnのバージョンで更新する方法はありますか?

たとえば、1.0.0。[svn's version]-> 1.0.0.12

役に立ちましたか?

解決

TortoiseSVNに付属の SubWCRev ツールを使用することもできます(また、個別に利用可能)。

コマンドラインから実行するか、 COM-それが提供するオブジェクト

SubWCRevコマンドラインツールキーワードを置換あなたのsvn作業コピーからの情報を使って。 がドキュメントに示されています。

他のヒント

$ Rev $ svnを使用できます。キーワードがファイルの最終リビジョンを提供しますが、 HEAD リビジョン番号を取得したいと思います。

この質問を見てください:

Visual Studioのアドインについてどう思いますか

はい、スクリプトを呼び出すビルド前イベントを追加できます

  • svn info を呼び出して現在のリビジョン番号を抽出します(以前に更新を行った場合は、ファイルにキーワード $ Revision $ を直接含めることができます。また、< a href = "https://stackoverflow.com/questions/1620598/how-to-get-the-current-revision-number-into-a-file-after-export/1620624#1620624">この投稿);
  • それに応じてProperties \ AssemblyInfo.csファイルを変更します。

私が通常していることは、プロジェクトのビルド時にAssemblyInfo.csテンプレートを変換することです。残念ながら、このファイルの構文に$ Revision $の形式を適合させるには、スクリプトが必要です。

興味深いプロパティは次のとおりです(テンプレート文字列は「$」の間にあります):

[assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev<*>quot;)]
[assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev<*>quot;)]

編集: svn info は標準SVNクライアントの一部であり、別の投稿で指摘されているTortoiseSVNではありません。でも簡単にインストールできます。ただし、TortoiseSVNには、キーワード置換を使用してファイルを変換する SubWCRev.exe が付属しているため、ローカルコピーを更新すると、トリックが実行されます。

Visual Studio 2008では、スクリプトまたは小さなプログラムを起動できるビルド前イベントを定義できます。このスクリプトまたはプログラム内で、 svnversion コマンドを使用してリポジトリリビジョンを取得し、AssemblyInfo.csを解析して、バージョン番号を必要なものに変更できます。

TortoiseSVNにsvnversionが付属するかどうかはわかりませんが、 Windowsには付属していますCollabNetが提供するSVNビルド

SVNバージョンプラグインを作成しました.codeplex.com / "rel =" nofollow noreferrer ">ビルドバージョンインクリメントプロジェクト(ポスターの答えに名前が付けられています)。このSVNプラグインは、作業コピーから最新の変更リビジョン番号を取得し、バージョン番号でそれを使用できるようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top