6

ライブラリの1つを反映して、ドメイン定義と比較するビルドアクティビティがあります。リフレクション中に、Uriをリフレクトしようとすると、UriではなくRunTimePropertyInfoとして返され、リフレクトされたプロパティのいずれかをチェックすると、次のような例外が発生します...

"Could not load file or assembly 'System, Version=2.0.5.0, culture=neutral, publickeytoken=7cec85d7bea7798e, retargetable=yes"

ビルドアクティビティは、System.dllバージョン4.0.0.0でコンパイルされます。これが問題だと思います。古いバージョンのSystem.dllに型を反映する方法はありますか?

これまでのところ、これはUriでのみ失敗しています。何か案は?

4

2 に答える 2

0

プロジェクトで使用されているdllの異なるバージョンを使用している場合、そのようなエラーが発生する可能性がある場合、バージョン管理の問題があると思います。

これは、過去に私のために働いた簡単な解決策の1つです。同じ問題があればうまくいきます。問題のある dll の古いバージョンと新しいバージョンを定義することにより、web.config で「 bindingRedirect 」タグを使用できます。つまり、古いバージョンの dll 参照を無視し、見つかった場合は新しいバージョンを使用し、エラーを生成しません。

ここに参照リンクがあります。 http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx

于 2013-03-19T10:20:48.207 に答える
0

IKVM.Reflection のようなものを使用する必要があります。

http://weblog.ikvm.net/PermaLink.aspx?guid=d0dc2476-471b-45f3-96bf-a90bc2f5800b

Microsoft のリフレクションは、ホストされている .NET Framework に関連付けられているため、必要に応じてコア ライブラリの古いバージョンをロードすることはできません。

于 2013-03-19T12:18:16.080 に答える