2016-10-08 205 views
1

JSON.NETのコンパイル済みDLLアセンブリをロードしようとしました。しかし、次のエラーメッセージが表示されます。Windows 10でdllアセンブリを読み込めません(HRESULTの例外:0x80131515)

PS C:\Users\tamas\Desktop\garbage> Add-Type -path .\Newtonsoft.Json.dll 
Add-Type : Could not load file or assembly 'file:///C:\Users\tamas\Desktop\garbage\Newtonsoft.Json.dll' or one of its d 
ependencies. Operation is not supported. (Exception from HRESULT: 0x80131515) 
At line:1 char:1 
+ Add-Type -path .\Newtonsoft.Json.dll 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Add-Type], FileLoadException 
    + FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell.Commands.AddTypeCommand 

別のコンピュータでは、Windows 7の下で問題なく同じことができました。 原因とその解決方法は何ですか?

私の.NETバージョン:

PS C:\Users\tamas\Desktop\garbage> [System.Environment]::Version 

Major Minor Build Revision 
----- ----- ----- -------- 
4  0  30319 42000 

PowerShellのバージョン:

PS C:\Users\tamas\Desktop\garbage> $Host.Version 

Major Minor Build Revision 
----- ----- ----- -------- 
5  1  14393 206 

答えて

1

マーティン・ブランドルのsuggestonが、私は問題を把握することができました@のおかげで(私は実際には、彼のコードを変更する必要がありました何でも($global:error[0].Exceptionは何LoaderExceptionsフィールドを持っていません。))

PS C:\Users\tamas\Desktop\garbage> 
>> try 
>> { 
>>  Add-Type -Path .\Newtonsoft.Json.dll 
>> } 
>> catch 
>> { 
>>   write-host $global:error[0].Exception.InnerException 
>> } 
System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused th 
e assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enabl 
e CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please ena 
ble the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information. 

それはdllファイルは、外部ソースからだったので、安全上の理由のPowerShellの例外を投げたことが判明しました。この問題に関する詳細情報は、MSDNサイトhereで見つけることができ

PS C:\Users\tamas\Desktop\garbage> [System.Reflection.Assembly]::UnsafeLoadFrom("c:\users\tamas\Desktop\garbage\Newtonso 
ft.Json.dll") # absolute path required here!! 

GAC Version  Location 
--- -------  -------- 
False v4.0.30319  C:\Users\tamas\Desktop\garbage\Newtonsoft.Json.dll 

:私は、DLLアセンブリをロードすることができました番目UnsafeLoadFrom(...)方法を使用。

1

私はあなたが不足している依存関係をどのあなたを伝えることはできませんが、私はどのようにそれを見つけるためにあなたを伝えることができます。ただ、LoaderExceptionを取得CAND try-catch以内にあなたのAdd-Typeを囲む:それは出力されませんでしたbecuase

try 
{ 
    Add-Type -Path .\Newtonsoft.Json.dll 
} 
catch 
{ 
     $global:error[0].Exception.LoaderExceptions | % { Write-Host $_ } 
} 
+0

ありがとうございます!あなたの答えは私を解決に導いてくれました。質問に対する私の答えを見てください。 – ThomasMX

関連する問題