1

「参照されたアセンブリ 'xxxxxxxxxx.GPUImage' に厳密な名前のエラーがありません」というエラーが表示され、「参照されたアセンブリに厳密な名前がありません」エラーの修正方法に従って、問題を修正しました。正しい参照も追加しました。(私は他の 2 つのサードパーティ アセンブリでこの問題を抱えており、それらに署名した後、それらは正常に動作します。)

しかし、署名した後、以前にはなかった新しいエラーが発生します。以下の通りです。

Error    2    The type 'xxxxxxxxxx.GPUImage.ImageFilter' is defined in an assembly
that is not referenced. You must add a reference to assembly 'xxxxxxxxxx.GPUImage',
Version=2.0.0.0, Culture=neutral, 'PublicKeyToken=null'.

これの理由は何ですか?.dll は、署名済みの .dll 内の割り当てられていない .dll と一致できますか?

@eric が述べたように、fusion log を実行しました。ログ ファイルは次のとおりです。

ここに画像の説明を入力してください

4

3 に答える 3

2

プロセスモニターを学習して使用すると、プロセスがアセンブリをロードしようとしている場所を確認できます。

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

すべての場所を知ったら、先に進んでそれらの署名されていないバージョンを削除します。通常、それらはユニットテストスイートまたは他の何かによってどこかにキャッシュされる可能性があります。それらを削除することで、問題を解決できるはずです。

于 2012-06-07T06:22:57.993 に答える
2

ハードディスク上の未署名のアセンブリをすべて検索して削除し、署名済みのバージョンだけを保持します。次に、完全な再構築を行います。それが機能するか、古いアセンブリを参照している人を見つけることができます。

于 2012-06-07T05:49:00.227 に答える
1

ソリューション内の一部のアセンブリが、GPUImage.ImageFilter を定義するアセンブリの未署名バージョンを参照しています。から取得しPublicKeyToken=nullます。

Fusion Log Viewerを使用して、読み込みがどのように解決されているかを調べてみてください。どのアセンブリが署名されていないアセンブリを参照しようとしているかがわかります。

于 2012-06-07T05:09:52.493 に答える