DOBON.NET DOBON.NETプログラミング掲示板過去ログ

『自分自身のバージョン情報を取得する』で・・・

環境/言語:[VisualBasic2005]
分類:[.NET]

『自分自身のバージョン情報を取得する』(http://dobon.net/vb/dotnet/file/myversioninfo.html)で、バージョンの取得の方法はわかったのですが、その取得したバージョン情報をメッセージボックスなどで表示しようとすると型が合わないとエラーが出てしまいます。どのようにすればよいのでしょうか?よろしくお願いします。
> 『自分自身のバージョン情報を取得する』(http://dobon.net/vb/dotnet/file/myversioninfo.html)で、バージョンの取得の方法はわかったのですが、その取得したバージョン情報をメッセージボックスなどで表示しようとすると型が合わないとエラーが出てしまいます。

多分お使いの環境がOption Strict Onで暗黙の縮小変換が禁止になってるためでしょう。
参考にしたソースはそれがOffで、かつver.ToStringが呼び出されるため動作しているのでしょう。
なのでver.ProductVersionなどプロパティまで書いてあげなくてはいけません。
ProductMajorPartなどStringではないものはさらにStringに変換してください。
お礼遅れました。最近多忙で、まだ試していないのですが、参考にさせていただきます。ありがとうございました。
解決済み!
すいません、実際にプログラムに向かうとよくわかりませんでした。現在したのソースなのですが、どのように修正すればよいのでしょうか?よろしくお願いします。

Dim asm As System.Reflection.Assembly = _
System.Reflection.Assembly.GetExecutingAssembly()


'バージョンの取得
Dim ver As Object = asm.GetName().Version

'結果の表示
MsgBox(ver.ProductVersion)
■No16424に返信(ナカトシさんの記事)
> すいません、実際にプログラムに向かうとよくわかりませんでした。
> 現在したのソースなのですが、どのように修正すればよいのでしょうか?

CLR の主役である '型' を意識しないと、どのメンバが存在するかわかりにくいです。
また、遅延バインディングは使用しないに限ります。

> Dim ver As Object = asm.GetName().Version

System.Version 型にしましょう。

> MsgBox(ver.ProductVersion)

System.Version クラスには ProductVersion というメンバはないかと思います。
お世話になります。

■No16424に返信(ナカトシさんの記事)
蛇足ですけども。
『自分自身のバージョン情報を取得する』(http://dobon.net/vb/dotnet/file/myversioninfo.html)
でやっている"標準出力への出力"を"MessageBox への出力"
に変えるだけなら
単純にこれだけです。

'自分自身のバージョン情報を取得する
Dim ver As System.Diagnostics.FileVersionInfo = _
  System.Diagnostics.FileVersionInfo.GetVersionInfo( _
  System.Reflection.Assembly.GetExecutingAssembly().Location)
'結果を表示
MessageBox.Show(ver.ToString())

DOBON.NET | プログラミング道 | プログラミング掲示板