1

Prism アプリケーションに log4net サポートを追加しようとしています。残念ながら、プリズムモジュールごとに次のエラーが発生します。

エラー 101 不明なビルド エラー、「アセンブリへの依存関係を解決できません 'log4net、バージョン = 1.2.10.0、カルチャ = ニュートラル、PublicKeyToken = 1b44e1d426115821' はプリロードされていないためです。ReflectionOnly API を使用する場合、依存アセンブリを事前に読み込むか、ReflectionOnlyAssemblyResolve イベントを通じてオンデマンドで読み込む必要があります。【プリズムモジュール1 プロジェクト名】

エラー 101 不明なビルド エラー、「アセンブリへの依存関係を解決できません 'log4net、バージョン = 1.2.10.0、カルチャ = ニュートラル、PublicKeyToken = 1b44e1d426115821' はプリロードされていないためです。ReflectionOnly API を使用する場合、依存アセンブリを事前に読み込むか、ReflectionOnlyAssemblyResolve イベントを通じてオンデマンドで読み込む必要があります。【プリズムモジュール2 プロジェクト名】

など...

次のようにロガーを設定しました。

  1. メイン アプリとブートストラップの両方に log4net アセンブリ参照を追加しました。
  2. app.config ファイルに log4net 構成を追加しました。
  3. App.xaml.cs ファイルに [assembly: log4net.Config.XmlConfigurator(Watch = true)] を追加しました。
  4. ILoggerFacade を実装するロガーを作成し、ブートストラップで CreateLogger() を上書きして、カスタム ロガーを返すようにしました。

それでおしまい。ビルドしようとすると、プリズム モジュール プロジェクトごとに上記のエラーが発生して失敗します。私が見つけた唯一の回避策は、log4net 参照を各プリズム モジュール プロジェクトに手動で追加することでした。これは、ILoggerFacade と実際の実装の依存関係の間の抽象化を無効にしていると思います。

エラーはReflectionOnlyAssemblyResolveイベントを使用することを提案していますが、ランタイムではなくビルドエラーであるため、ここでどのように役立つかわかりません。

なにか提案を ?:-)

4

1 に答える 1

0

OK、問題が見つかりました。各モジュールがブートストラッパーを参照していましたが、これは間違っています。その依存関係とVOILAを削除し、修正しました!

于 2013-08-09T21:27:43.320 に答える