misc.log

日常茶飯事とお仕事と

ロードされているODP.NETライブラリのバージョンを調べる

昨年だったかに、ちょっと複雑なデプロイ環境を作る必要があり、その環境で実際に使われているODP.NET(Oracle Data Provider for .NET)のバージョンを調べなければならなかったので作ったコード。どこかで使いそうなので貼っておきます。

'Oracle.DataAccessをロードさせるためにインスタンスを作る
Dim test As New Oracle.DataAccess.Client.OracleCommand

'ロード済みアセンブリをあたる。FullNameがOracleで始まるものがあれば表示する。
For Each asm As System.Reflection.Assembly In My.Application.Info.LoadedAssemblies
    If asm.FullName.StartsWith("Oracle") Then
        VersionText.Text = asm.FullName
        Exit For
    End If
Next

なんのことはない、リフレクションを使ってロード済みのアセンブリを総当たりしてるだけです(笑)。もっと洗練された方法もあるのかもしれないけれど、とりあえずの目的は達成できる道具として使ったコードでした。実際にはこれにログやらエラー処理をゴテゴテにつけて、どんな状況でもとりあえず報告がログとして出力されるようにしていました。

プログラミングを「言われたから、やらないといけないから」というだけで使うのではなく、道具として、主務を支援するために使うというのは本来のコンピューターの使い方だと思うのですけど。入門者ほどこういうことをやらないんですよね。

Oracle+.NETプログラミング・バイブル―ODP.NETによる強力開発環境

Oracle+.NETプログラミング・バイブル―ODP.NETによる強力開発環境