- - PR -
AssemblyVersionをコンパイル毎に動的に設定する
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-08 14:49
VS2003(C#)でプログラム開発をしております。
プログラムのバージョンをAssemblyInfo.csで設定すると思うのですが、 [assembly: AssemblyVersion("1.0.0.*")] の"*"の部分を動的に設定する事はできるのでしょうか? やりたい事はコンパイルを行った日付をバージョンの情報に付加できないものかと考えてります。 皆様はどのようなやり方でファイルのバージョンを管理されておられますか? あんまり良い方法が思いつかなかったので上記方法を取れればと考えています。 ご教授よろしくお願いいたします。 | ||||||||
|
投稿日時: 2007-02-08 15:48
更新日付が欲しいならファイルの更新日付でいいじゃんって思うんだが。 何もAssemblyVersionに入れる必要などないと思うんだが? | ||||||||
|
投稿日時: 2007-02-08 16:48
ある意味、日付みたいよ | ||||||||
|
投稿日時: 2007-02-08 16:59
ぶさいくろうさん、かめたろさん
お返事ありがとうございます。 [/quote] 更新日付が欲しいならファイルの更新日付でいいじゃんって思うんだが。 何もAssemblyVersionに入れる必要などないと思うんだが? [/quote] ⇒ プログラムに特定のことを行うとファイルの更新日付が変わってしまうんです。 ですのでバージョンに入れたいのです。 [/quote] major と minor を指定すると、build でアスタリスク (*) を指定できます。アスタリスクを指定すると、 build は現地時間 2000 年 1 月 1 日からの経過日数になり、 revision は現地時間の深夜からの経過秒数を 2 で割った値になります。 [/quote] ⇒ 知らなかったです・・・ でもかなり見難いので出来れば(1.0.0.20070208)のようにしたいのが現状です。 どのように記述を行うと実現できるのでしょうか? サンプルなどがありましたらぜひご教授ください!! | ||||||||
|
投稿日時: 2007-02-08 21:53
私は、VSS を使って埋め込む予定。。。
あ、これだとクラス毎か(^-^; あと、assemblyinfo.cs を読んで該当行を書き換えるツールを作ろうかと思っています。そいつを「ビルド前イベント」で実行する、と。 _________________ | ||||||||
|
投稿日時: 2007-02-08 22:30
直接 (1.0.0.20070208) のようにしてみると出来ないことがわかります。 各バージョンに設定できる値は 0 から 65534 までだとエラーが発生します。
こっちの方を何とかしたほうが良いような気がします。 それとバージョン管理などはビルドツールを使用する方法などもあります。 私も詳しくはわかりませんが、自動的にバージョンをインクリメントしたりするみたいです。 | ||||||||
|
投稿日時: 2007-02-09 10:34
Versioning Controlled Build
http://www.codeproject.com/dotnet/versioningcontrolledbuild.asp ソースコードをちらっとみたかんじ、ちょっと改造すればお望みのもの(設定できる範囲内で日付をどう表現するかって課題は残るが)ができそうな気がしないでもないですが。でもこれちと大袈裟か。 | ||||||||
|
投稿日時: 2007-02-09 20:00
皆様 ご返答ありがとうございます。
日付をバージョンに入れるのがまず根本的に無理なのが分かりました。 (日付を別の何かに置き換えることで考えて見ます) ちなみに皆様はバージョン管理をどのようにされていますか? (機能が上がったときやバグ改修の時のリビジョンなど・・・) 今後の参考にしたいと思うので皆様のご意見をお待ちしております! |