SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 活用編

Windows PowerShell 活用編(5)
.NET Framework利用の基礎

アセンブリ・ライブラリの読み込みと利用

アセンブリの読み込み

 VB.NETユーザーやC#ユーザーであれば自分が使用したいアセンブリを知っているかと思います。先ほど確認した一覧に目的とするアセンブリがない場合には、手動で読み込む必要があります。

 アセンブリを読み込むにはAssemblyクラス(System.Reflection.Assembly)を使用します。

 アセンブリのロードに使用できるメソッドについて例を交えながら紹介します。

LoadWithPartialNameメソッド

 LoadWithPartialNameメソッドは指定したアセンブリ名を読み込みます。基本構文は下記の通りです。

[System.Reflection.Assembly]::LoadWithPartialName(アセンブリ名)

 このメソッドはアセンブリ名を指定するだけでをロードすることができます。例えばSystem.Drawing.Bitmapを使用したい場合は、System.Drawingアセンブリが必要なので、下記のようにして読み込みを行います。

PS> [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

 コマンドを実行すると、上図のようにアセンブリ情報が表示されます。

 このメソッドでは常に最新のバージョンがロードされ、「Version」列に読み込まれたアセンブリのバージョンが、「Location」列にそのアセンブリのフルパスが表示されます。

 アセンブリ情報を表示させたくない場合は先頭に[void]を付け、表示を抑制します。

PS> [void][System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

Loadメソッド

 先ほどのLoadWithPartialNameメソッドを使用すると常に最新のバージョンのアセンブリが読み込まれてしまうため、開発で使用してきたバージョンと異なる場合があります。

 このような場合には、Loadメソッドを使用して読み込むアセンブリのバージョンを指定します。

 Loadメソッドの構文は下記の通りです。

[System.Reflection.Assembly]::Load(アセンブリの完全名)

 アセンブリの完全名を調べるには、一度LoadWithPartialNameメソッドを使用してアセンブリをロードしたものを変数にセットします。

 次にFullNameプロパティを表示させることで、対象アセンブリの完全名を取得することができます。

PS > $a = [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
PS > $a.FullName

 このようにして求めた完全名を控えておき、Loadパラメータの引数に渡すことで特定のバージョンのアセンブリを読み込むことが可能となります。

PS > [System.Reflection.Assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")

LoadFromメソッド

 PowerShellでは自作したライブラリ(dll)を使用することも可能です。この場合はLoadFromメソッドを使用します。基本構文は下記の通りです。

[System.Reflection.Assembly]::LoadFrom(dllファイルのパス)

 例としてC#で簡単なライブラリを作り読み込む例を紹介します。

// Hello.dll
namespace MyLib
{
  public class Hello
  {
    public Hello()
    {
    }

    public static string SayHello()
    {
      return "Hello PowerShell!!";
    }
  }
}

 上記をコンパイルしてHello.dllというライブラリを作成します。

 このライブラリを読み込むには下記のようにLoadFromメソッドを使用し、ライブラリのパスを指定します。

PS> [System.Reflection.Assembly]::LoadFrom("C:\Work\Test.dll")

次のページ
.NETオブジェクトの利用方法

この記事は参考になりましたか?

Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3572 2009/03/02 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー