0

3 つの .NET 4.0 サード パーティ アセンブリがあります。

  • Assembly.Oneunsigned であり、 signedAssembly.Twoおよび unsignedを参照していAssembly.Threeます。

  • Assembly.Two署名され たを参照しAssembly.Threeます。

リフレクターを使用して上記を確認しました。

Assembly.Oneunsigned 、 signed Assembly.Two、およびunsigned が提供されましたAssembly.Three

参照から署名されたバージョンを具体的に探しているため、署名されたものはAssembly.Two署名されていないものを確実にロードできないため、展開時にこれが失敗することを期待していましたか? Assembly.Threeしかし、驚いたことに、それは機能します。

Assembly.Twoマニフェストに への参照がAssembly.Threeあるので、それを使用している必要があります。サーバー上に署名されたバージョンがないことを確認Assembly.Threeしました.FUSLOGVWを使用すると、実際に署名されていないバージョンが読み込まれます.

FUSLOGVW には、unsigned の読み込み用のエントリとAssembly.Three、(Unknown) の呼び出しアセンブリ用のエントリが 2 つあります。

部分的に指定されたアセンブリ バインドが、アプリケーション ディレクトリから成功しました。ポリシーを再適用する必要がある

Assembly.One発信元が unsigned への参照を持っているため、私が気付いていないこれを可能にする潜在的な「責任の連鎖」(より良い説明がないため)があるAssembly.Threeでしょうか?

4

1 に答える 1

0

app.config、Machine.Config などにリダイレクトを実行する「構成済みアセンブリ」はありますか? または、動作を変更するための他の構成済み設定はありますか?

アセンブリへの参照で「特定のバージョン = true」であることを確認してください。プロジェクトで Unsigned を参照しAssembly.Threeて「コピー」を強制していますが、実際には Three を直接使用していませんか? Assembly.TwoLocal への参照が開始される前にロードされていることを確認するか、ThreeThree を直接参照しないでくださいTwo

Load info hereランタイムがこの情報からアセンブリを検索する方法 #2 は、あなたに起こっていることかもしれません。

于 2012-07-31T23:21:00.533 に答える