我的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")
那是失败的。有什么想法吗?
答案 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,你别无选择:)