2016-06-02 5 views
1

同じ解決策の異なるプロジェクトにある(作業中の)アペンダーがあります。同じソリューションの他のプロジェクトのカスタムアペンダー

私は、そのソリューション内ONE他のプロジェクトからそのアペンダにアクセスできますが、他はすべてログにエラーを表示する失敗:

のlog4net:ERRORは、タイプのアペンダ[AzureAppender]を作成できませんでした[my.Backend .AzureAppender]をクリックします。

報告されたエラーが続きます。 System.TypeLoadException:タイプ[my.Backend.AzureAppender]を読み込めませんでした。 my.Backendにアセンブリ[log4netの、バージョン= 1.2.15.0、カルチャニュートラル、PublicKeyToken = = 669e0ddf0bb1aa2a]と読み込まれたすべてのアセンブリ

参考に存在しようとしました。

のAppenderの内容は次のとおりです。

<appender name="AzureAppender" type="my.Backend.AzureAppender"> 
    <FileName>web.log</FileName> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%-5p %d %5rms [%t] %-22.22c{1} %-18.18M - %m%n" /> 
    </layout> 
</appender> 

答えて

4

dllがまだロードされていない場合は、dllの名前を含むように型を変更する必要があります。

<appender name="AzureAppender" type="my.Backend.AzureAppender, mydllName"> 

これはmydllName.dllという名前のDLLをロードし、その内側にmy.Backend.AzureAppenderと呼ばれるタイプを探すためにlog4netのを教えてください。

これが失敗した場合は、そのタイプの完全なAssemblyQualifiedNameを追加できます。

+0

Dll-Nameを追加するとそのトリックが追加されました。 Thx –

+0

dllバインディングの問題(融合ログ)を探すために、dllバインディングを設定しようとしました... log4nett.dllの同じバージョンを使用して+ dllファイル名を追加した同じWebプロジェクトとアペンダープロジェクトを整列しました。 ありがとう! – evgenyl

0

あなたのプロジェクトのあなたのbinフォルダにmy.Backend.AzureAppenderを含むDLLを展開する必要があります。私はそれが欠けていると確信しています。原因は、このdllのコードに直接参照がないため、出力binディレクトリにコピーされないということです。

+0

私はmy.Backendへの参照を追加しました(また、.dllもbinディレクトリにあります) –

関連する問題