8

ロギングに Apache のバージョンの log4net を使用しています

1.2.10.0 (with PublicTokenKey=1b44e1d426115821)

残念ながら、SAP Crystal Reports は、このライブラリの独自のバージョンを別の公開トークン キー (独自の snk ファイルでコンパイル) と共に使用します。

1.2.10.0 (with PublicTokenKey=692fbea5521e1304)

同じバージョン、異なる公開トークン キー。ソリューションをコンパイルすると、次のようなメッセージが表示されます。

「「log4net、Version=1.2.10.0、Culture=neutral、PublicKeyToken=1b44e1d426115821」と「log4net、Version=1.2.10.0、Culture=neutral、PublicKeyToken=692fbea5521e1304」の間の競合を解決する方法はありません。「log4net、Version=1.2 を選択する」 .10.0、Culture=neutral、PublicKeyToken=1b44e1d426115821"任意。"

最悪なのは、Crystal Reports の 32 ビット バージョン (GAC に log4net アセンブリをインストールする) をインストールしないと、64 ビット マシンに展開できないことです。

Crystal のバージョンの log4net を GAC から取得しましたが、問題は次のとおりです。

Crystal Reports のバージョン (PublicTokenKey=692fbea5521e1304) を使い始めたら何か解決しますか?

log4net の次のリリース (v1.2.11.0 など) を使用したい場合はどうすればよいですか?

これを正しい方法で解決する方法はありますか?

4

2 に答える 2

0

このコードを App.config に追加します:</p>

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304"/>
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304"/>
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304"/>
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.Windows.Forms" publicKeyToken="692fbea5521e1304"/>
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.Enterprise.Framework" publicKeyToken="692fbea5521e1304"/>
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.1100.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.Enterprise.InfoStore" publicKeyToken="692fbea5521e1304"/>
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.1100.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
于 2014-02-27T09:36:42.013 に答える
0

log4net はオープン ソースなので、別の名前でコンパイルできます。

これが機能するかどうかは完全にはわかりませんが、エイリアスも調べることができると思います。こちらもご覧ください

于 2012-12-01T22:53:19.323 に答える