ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  405  : 記事  5  : コメント  12114  : トラックバック  134

ニュース

記事カテゴリ

書庫

日記カテゴリ

Communities

Personal Information

2010年6月26日 #

先日、version 管理を自動化しようとしてやってしまった失敗。

アプリケーションのバージョンの管理

上記に記述があるように AssemblyVersionAttribute に "1.0.*" を指定して compile したわけだけど、その時 AssemblyFileVersionAttribute にも "1.0.*" を指定してしまった。

Unit test 通った後でちょっと忙しかったこともあり、他の人に compile お願いといって test までお願いすることに。その後、test で log 出力がうまくいかないと連絡が。。。

Log 出力は FileLogTraceListener を利用しているんですけど、その初期化時に System.ConfigurationException「パスに無効な文字が含まれます。」で落ちる。正確にはSystem.Security.Permissions.FileIOPermission.HasIllegalCharacters(String[] str) でね。Configuration file がおかしいのかな?と思っていくら変更してもダメ。

しゃー無いので build し直してみる。すると下記警告が。。。

アセンブリの生成 -- 'ファイル バージョン' に指定されたバージョン '1.0.*' は正常な 'major.minor.build.revision' フォーマットではありません。

とりあえず修正してみた。。。結果、正常に動作した! これかよ!

Assembly vesion と file version は一致させたかったので、AssemblyFileVersionAttribute を comment out して解決。

ちゃんと reference 読んでみると AssemblyVersionAttribute には "*" の説明載っているけど AssemblyFileVersionAttribute には載っていない。あ~そのなのね。確認すると build された assembly の file version には "1.0.*" がそのまま入っていました。

でも、「パスに無効な文字が含まれます。」この message は無いな~。そもそも path の問題じゃないし。もう少し、わかりやすい message 返してよ。

ってゆうか compile 時に警告ではなく error にしてよ。動かないのあるのなら。

posted @ 18:37 | Feedback (623)