- PR -

アセンブリのバージョン情報について

1
投稿者投稿内容
コロすけ
会議室デビュー日: 2008/04/14
投稿数: 9
投稿日時: 2008-10-16 21:04
こんばんは
VS2003のVBで開発しています
アセンブリのバージョンはAssemblyInfo.vbに
<Assembly: AssemblyVersion("1.0.*")> のような属性値をアスタリスクで記述すれば
ビルドとリビジョンがVSによってビルドの度に自動で更新されると書籍やヘルプに
書いてありますが、何をやっても更新されません。プライベートアセンブリ、共有アセンブリどちらで試しても駄目でした。
ソースファイルを変更してからビルドしてるのですがバージョン番号が全く変化しません。ソースファイルも最初は無意味な空白を入れたりして変更していたのですが、コードをもろに追加しても駄目でした。
よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-10-16 22:01
引用:

コロすけさんの書き込み (2008-10-16 21:04) より:

アセンブリのバージョンはAssemblyInfo.vbに
<Assembly: AssemblyVersion("1.0.*")> のような属性値をアスタリスクで記述すればビルドとリビジョンがVSによってビルドの度に自動で更新されると書籍やヘルプに書いてありますが、何をやっても更新されません。


アセンブリ バージョンは 「A.B.CCCC.DDDDD」 という構成です。 C 部は日付によって自動で変化します。 D 部は時刻によって変化します。 少なくとも D 部さえ変わらないなんてことはないと思います。 確認しているアセンブリが間違っているなんてことはありませんか? 更新日時を確認してください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
コロすけ
会議室デビュー日: 2008/04/14
投稿数: 9
投稿日時: 2008-10-17 00:04
じゃんぬねっと様

ご返事ありがとうございます
何か基本的な勘違いをしているかも知れないので手順を詳細に記述させていただきます

1.VSを立ち上げ、ファイルメニューから新規作成→プロジェクト→コンソールアプリケーションを作成。※プロジェクト名等、すべてデフォルトのままプロジェクトを作成しています。
自動作成されたAssenblyInfo.vbには<Assembly: AssemblyVersion("1.0.*")> という設定が入っています
2.ビルドメニューからConsoleApplicationXXのビルド
3.プロジェクトのプロパティからプロジェクトフォルダのパスをエクスプローラーにコピペし、開いたフォルダのbinフォルダを開く
4.エクスプローラーでConsoleApplicationXX.exeのプロパティを表示、バージョン情報タブの詳細AssemblyVersionを確認。1.0.3211.42607
5.Sub Mainにconsole.writeline("")というコードを追加。
6.再びビルドメニューからConsoleApplicationXXのビルド
7.再びbinフォルダのConsoleApplicationXX.exeのプロパティを表示。1.0.3211.42607(変化なし)
更新日時も更新されていることを確認。

以上です。また共有アセンブリしか自動付番されないのかと思い、上記と同様の操作を
共有アセンブリに対しても行ったのですが同じ結果でした
よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-10-17 13:14
AssenblyInfo.vb がビルド対象になっていないのかちょっとわからないですが、Major や Minor の数値を変えた場合も同様に反映されませんか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
コロすけ
会議室デビュー日: 2008/04/14
投稿数: 9
投稿日時: 2008-10-17 21:03
こんばんは。
MajorやMinorの数値を変えた場合はリビジョン番号はちゃんと変わります。
<Assembly: AssemblyVersion("1.0.*")> を<Assembly: AssemblyVersion("1.1.*")>
に変えてビルドした場合は1.0.3211.42607→1.1.3211.42720のようになるので
AssemblyInfo.vbが無視されているわけではないようです。
また、VS2003は同じ物を会社と自宅にインストールしていますがどちらでも同じ結果です。
コロすけ
会議室デビュー日: 2008/04/14
投稿数: 9
投稿日時: 2008-10-21 20:06
マイクロソフトの技術文書にVBのアセンブリについての記述がありました。
VB.NETではアスタリスク指定だと初回しかビルド、リビジョン番号が割り振られないみたいですね。Francesco BalenaのプログラミングVisualBasic.net基礎編には
ソースを無意味な空白等で編集後、ビルドすると自動で割り振られるとの記述がありましたが間違いのようですねC#では自動で割り振られるようです。

http://www.microsoft.com/japan/msdn/net/bda/tdlg_ch5.aspx
引用:

注意 AssemblyVersion が "1.0.*" に設定されている Microsoft Visual Basic&reg; .NET プロジェクトでは、プロジェクトが Visual Studio .NET IDE (統合開発環境) 内で最初にビルドされるときのみアセンブリ バージョンが更新されます。同一インスタンスの Visual Studio .NET 内の後続のリビルドでは、バージョン番号は変化しません。アセンブリ バージョンは厳密な名前を持たないアセンブリでは情報のみを目的とするので、このことは問題にはなりません。厳密に名前指定されたアセンブリの場合は、以下のセクションで説明するように、 AssemblyVersion 属性にワイルドカード文字を使用しないようにする必要があります。
AssemblyVersion が "1.0.*" に設定されている C# プロジェクトでは、プロジェクトがリビルドされるたびにアセンブリ バージョンが更新されます。


1

スキルアップ/キャリアアップ(JOB@IT)