アセンブリのロード
自分メモ。
グローバルアセンブリ
[VOID][System.Reflection.Assembly]::Load("System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
アセンブリ"System.Web"のロードは、AssemblyName を使って下のようにも書ける。書く量が増えて面倒くさいけど。
$asmName = new-object System.Reflection.AssemblyName; $asmName.Name = 'System.Web'; $asmName.Version = new-object System.Version(2, 0, 0, 0); $asmName.CultureInfo = new-object System.Globalization.CultureInfo(""); $asmName.SetPublicKeyToken(@([byte]0xb0, [byte]0x3f, [byte]0x5f, [byte]0x7f, [byte]0x11, [byte]0xd5, [byte]0x0a, [byte]0x3a)); [VOID][System.Reflection.Assembly]::Load($asmName);
プライベートアセンブリ
System.Reflection.Assembly.Load() を使う場合は、文字列を引数にとるLoad()に、アセンブリのパスを直接わたすとエラーになる。Load()を使う場合は、AssemblyNameを使わないといけないくさい。
$asmName = [System.Reflection.AssemblyName]::GetAssemblyName('アセンブリのパス'); [VOID][System.Reflection.Assembly]::Load($asmName);
System.Reflection.Assembly.LoadFile() だったら、そのままアセンブリのパスを渡せばよい。
[VOID][System.Reflection.Assembly]::LoadFile('アセンブリのパス');