2016-08-20 13 views
1

PowerShellがopen sourcedで、Linuxで利用できるようになったので、どのようにlinuxの下に.Netアセンブリを追加するか知っていますか?もし可能ならば?LinuxのPowerShell - .NETアセンブリをロードするには?

hereのようにUbuntu 16.04にPSをインストールし、hereのようにMonoをインストールしました。端末上でPSを実行した後、この行は驚くほどうまく動作します

add-type -assembly "/usr/lib/mono/4.5-api/System.Web.Extensions.dll" 

エラーなし等...

私がしようとすると、しかし:

$js = New-Object "System.Web.Script.Serialization.JavaScriptSerializer" 

私は取得していますこのエラー:

new-object : Cannot find type [System.Web.Script.Serialization.JavaScriptSerializer]: verify that the 
assembly containing this type is loaded. 
At line:1 char:10 
+ $ps_js = new-object "System.Web.Script.Serialization.JavaScriptSerial ... 
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidType: (:) [New-Object], PSArgumentException 
    + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand 

そのヒントはありますか? linuxのpowershellがまだ "alpha"なのでバグでしょうか?ところで

- モノがCLR /フルフレームワークのクローンである間、窓はすべてうまく働いているに... Linux上で

+0

Miguel de IcazaはMonoとはまだ動作していないことを確認しました。そのため、.NETコアでしか実行できません。 –

+0

その確認への参照はありますか? –

答えて

3

PowerShellにはCoreCLRに基づいています。使用しているアセンブリは完全なフレームワークであり、System.Runtimeではなくmscorlibに基づいているため、CoreCLRでロードすることはできません。

今後の.NET Standard 2.0の回避策(多分)があります。

newtonsoft.jsonを使用しない場合、PowerShellではJsonのシリアル化がネイティブである必要があります。

関連する問題