2012-05-11 6 views
0

My Assembly.LoadFrom(path、hashValue、hashAlgorithm)は機能していません。「見つかったアセンブリはアセンブリ参照と一致しません」例外で失敗します。Assembly.LoadFromはmd5ハッシュを使用していません

これは私が最初に正常に動作負荷(バイト)を使用してアセンブリをロードすることによってハッシュ値を決定したPowerShellで2

あります。その結果を用いて、以下のように、私は、証拠から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

私もC#で同等のを試してみたを持っていないが、まだ失敗します。おそらくevidence.MD5はLoadFromに必要なハッシュ値ではありませんか? –

答えて

0

呼び出しているLoadFromメソッドは、.NET 4以降でのみ使用できます。 PowerShellがまだ.NET 3.5で動作しているのを見て、これはうまく動作しません。

おそらくnullを2番目のパラメータに渡すことができます。 EG:

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

According to MSDN, the above method is now obsoleteが、3.5のために、あなたが他の選択肢:)

+0

PSが.Net 4 CLRを使用して実行されるように、私はレジストリを微調整しました。私はコンパイル済みのC#アプリケーションでもテストしました。立ち入り禁止。 –

関連する問題