1

から継承するカスタム トレース リスナーを作成しましたMicrosoft.Practices.EnterpriseLibrary.Logging.TraceListeners.CustomTraceListener

トレース リスナはユーティリティ dll であり、ユーティリティ dll は から構成ファイルを読み取りますutility.dll.config

LogWriterFactory("utility.dll.config")を作成するために使用していますLogWriter
コンソール アプリケーションに直接参照を追加すると、utility.dllすべて正常に動作します。

しかし、使用するAssembly.LoadFrom("utility.dll")と、次のエラーが発生します。

The type 'Utility.CustomTraceListner, Utility' cannot be resolved.

utility.dll を GAC に追加すると、すべて正常に動作します。AppDomain.CurrentDomain.GetAssemblies()のすぐ上の行を実行して、ロードされているlogWriterFactory.Create()ことutility.dllを確認できます。

AppDomain.CurrentDomain.CreateInstanceFrom("Utility.dll", "Utility.CustomTraceListener")呼び出す直前に実行logWriterFactory.Create()して、問題なくインスタンスを取得することもできます。

を使用する内部アプリケーションがあり、Assembly.LoadFromロードされる各アセンブリに、ロードするアプリケーションとは別の独自の構成ファイル/ログ設定を持たせたいと考えています。

utility.dllGACに入れずにこれを修正する方法はありますか?

utility.dll.configユーティリティ アセンブリを直接参照すると正常に動作しているため、ファイルが正しいことはわかっています。

4

1 に答える 1

0

ResolveEventHandler に配線すると、問題が解決しました。

http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx

于 2013-03-28T12:47:24.353 に答える