2012-05-22 16 views
7

私は、ロギングもののためCrystal Reports:Crystal Reportsのlog4net.dllバージョンを使用してプロジェクトをコンパイルすることをお勧めしますか?

1.2.10.0 (with PublicTokenKey=1b44e1d426115821) 

をlog4netののApacheのバージョンを使用しています。しかし、残念ながらSAP Crystal Reportsは別のパブリックトークン鍵を使用してこのライブラリの独自のバージョンを使用して(自分のSNKファイルを指定してコンパイル):

1.2.10.0 (with PublicTokenKey=692fbea5521e1304) 

同じバージョン、別の公開トークンキー。私は私のソリューションをコンパイルすると、私は次のように私を知らせるメッセージがあります。

log4netの「間の競合を解決する方法はありません 『バージョン= 1.2.10.0、カルチャニュートラル、PublicKeyToken = = 1b44e1d426115821』と」log4netの、バージョン= 1.2 "log4net、Version = 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821"を任意に選択してください。

最悪の事態は私がからlog4netののクリスタルのバージョンを取った(GACにlog4netのアセンブリをインストールします)のCrystal Reportsの32ビット版

をインストールすることなく、64ビットマシンに配備することができないということですGACと質問は:

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

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

これを解決する方法はありますか?

+1

を狂気の事は、.NETが任意にlog4netの標準バージョンを選んでいるされているので、クリスタルはコンパイル(と署名)している1そのものではありません使用さえしていても...クリスタルだから、あなたのアプリで正式に署名したものを使用/参照するのではなく、何とか起こっているように見えるのはなぜですか? –

答えて

0

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

これがうまくいくかどうかは完全にはわかりませんが、aliasesも見ることができます。 hereも参照してください。

+0

ありがとう!私はそれを試してみましょう –

+0

こんにちはRodrigo、最後にこの "警告"を取り除く方法を考え出しましたか?もしそうなら、ここにあなたの答えを載せることができますか?歓声、トッド。 –

+0

こんにちは@Tod、私はそれがうまくいきませんでした。しかし、私は新しいことを試しませんでした。 –

0

あなたはApp.configファイルにこのコードを追加します。

<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> 
+2

これは正確に何をすべきでしたか? – Zack

関連する問題