2

皆さん、私はASP.NET Webサイトプロジェクトを持っていますが、何らかの理由でmscorlib1.0.5とmscorlib2.0の両方を参照することを主張していますが、その理由がわかりません。

NDependを使用して参照されているすべてのDLLを分析しましたが、それらはすべてmscorlib2.0のみを参照しているように見えます。いくつかのWeb参照がありますが、それが1.0dllへの追加の参照を作成する理由を想像することはできません。

なぜ私がこの追加の参照を取得するのか、またはその情報を見つけるために何を使用できるのか、誰かが何か考えを持っていますか?NDependは素晴らしいですが、戻ってきて「新しいバージョンを使用して2つの参照が見つかりました」と表示されるので、追加の参照がある理由を理解するのに役立ちません...

4

3 に答える 3

2

この時点での最善の策は、ildasmを使用することだと思います。アセンブリでildasmを使用すると、「マニフェスト」という名前のノードが表示されます。そのノードをダブルクリックすると、参照されているバージョン番号を含むアセンブリ参照のIL表現がダンプされます。1.0バージョンを参照しているDLLが見つかるまで、すべてのDLLに対してこれを繰り返します。

編集

別の可能な解決策は、Assembly値とそれに関連するGetReferencedAssembliesメソッドを列挙することです。AssemblyNameこれにより、対応するバージョンメンバーを持つ値の配列が返されます。これには、参照されているアセンブリの実際のバージョンと実際にロードされたアセンブリのバージョンが含まれている必要があります。

私はこの問題について100%確信が持てず、今それをテストする便利な方法がありません。

于 2010-01-18T19:12:00.480 に答える
0

参照を削除して再コンパイルしてみてください。これにより、古いバージョンに依存するもの(ある場合)がわかります。

于 2010-01-18T19:09:34.290 に答える
0

誤った参照がweb.configファイルに存在している可能性があります。

親切、

ダン

于 2010-01-18T19:11:43.710 に答える