MSBuild でバージョン情報を更新する (バイナリのコンパイル後)
-
21-09-2019 - |
質問
MSBuild スクリプトで次のようなターゲットを作成したいと考えています。
- ソースフォルダーから SVN リビジョン/日時を取得します (「svn info」コマンド)
- 「ビルド」ターゲットによって生成された .EXE および .DLL から VERSIONINFO リソースを更新します
これを達成するために何か準備ができているものはありますか?別の車輪を再発明する直前に質問しています...
解決
MSBuildのコミュニティタスクプロジェクトにはあなたの友達です。彼らの「SvnInfo」タスクを確認してください。
また、ダニエルDoubrovkineの ResourceLib には、仕事の逸品であるとしようとしたときにあなたの頭痛の多くを回避することができます解くにVERSIONINFO作成混乱(...、があったことを行なわ)
他のヒント
プロジェクトに含まれる AssemblyInfo ファイル (またはアセンブリ属性を持つ任意のファイル) を作成することで、コンパイル前にこれを行う方がはるかに簡単です。
PowerShell でこれを記述する例は次のとおりです。 https://github.com/craigbeck/rhino-esb/blob/master/psake_ext.ps1#L7-46
注意点が 1 つあります -- .net のバージョンは単なる文字列ではなく、 ushort
これは、最大値が 65535 であることを意味します (ドキュメントを参照) ここ)。(ある時点で行ったように) svn リビジョンを使用すると、そのマジックナンバーを超えるとビルドが中断されます。
なぜコンパイル後にこれを行おうとするのでしょうか?
所属していません StackOverflow