Assembly.LoadFrom使用md5哈希不起作用

时间:2012-05-11 01:48:12

标签: .net reflection powershell powershell-v2.0

我的Assembly.LoadFrom(path,hashValue,hashAlgorithm)不起作用,失败并且“找到的程序集与程序集引用不匹配”异常。

这是在powershell 2中。

我已经通过首先使用Load(字节)加载程序集来确定哈希值,这可以正常工作。使用该结果,我从证据中访问MD5哈希值,如下所示:

$a= [System.Reflection.Assembly]::Load($bytes)  
$h=$a.Evidence|? {$_ -is [System.Security.Policy.Hash]}  
$md5= $h.MD5  

我将哈希值带入另一个PowerShell会话,所以我有一个干净的AppDomain,并尝试这个:

$md5=[byte[]] (values that I determined)  
[System.Reflection.Assembly]::LoadFrom("pathToMyAssembly", $md5, "MD5")  

那是失败的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您调用的LoadFrom方法仅适用于.NET 4及更高版本。看到Powershell仍在.NET 3.5上运行,称这不会起作用。

也许您可以将null传递给第二个参数。 EG:

[System.Reflection.Assembly]::LoadFrom("pathToMyAssembly", null, $md5, "MD5")  

According to MSDN, the above method is now obsolete,但对于3.5,你别无选择:)