2012-04-29 19 views
8

LinqToExcel kitaplığını kullanan bir proje oluşturmaya çalışıyorum. Ayrıca, günlükleri yazmak için log4net kullanıyorum.Log4net aksamını yüklemeye çalışırken hata atılıyor

Sorunum bu kod satırları çalıştırmak için tryomg olduğumda başladı:

var excel = new ExcelQueryFactory(ExcelPath); 
return (from r in excel.Worksheet<RowDetails>(company.Name) 
     select r).Count(); 

Bu hat atılan istisna:

HATA MyProj.Program Ana: System.IO.FileLoadException: Olabilir yüklenemedi dosya veya derleme 'log4net, Sürüm = 1.2.11.0, Culture = tarafsız, PublicKeyToken = 669e0ddf0bb1aa2a' veya bağımlılıklarından biri. Montajın manifest tanımı referansı ile uyuşmuyor. (HRESULT özel durum: 0x80131040) Dosya adı: 'log4net, Sürüm = 1.2.11.0, Culture = neutral, PublicKeyToken = 669e0ddf0bb1aa2a'

Ben bu satırdan önce log4net kullanmaya başarılı olduğumu dikkat etmek önemlidir.

Herhangi bir yardım için minnettarım.

Çok teşekkürler!

+2

Log4net aksamının farklı sürümlerini yüklüyormuşsunuz gibi görünür. Dosya sisteminizde birkaç log4net.dll dosyanız olabilir ve yanlış olan yüklenecek şekilde alınır mı? –

+0

Aynı sorun var; Dağıtım projemde imza eşleşir, dll derlememle aynı dizinde dağıtılır, ancak bu hatayı alıyorum. Yine de ilk bölüm. –

+0

1.2.11+, iki anahtar, "eski anahtar" ve "yeni anahtar" olarak geliyor. –

cevap

6

marc_s'ın belirttiği gibi, bu sorun genellikle aynı derlemenin farklı sürümlerini yüklemeye çalışırken görünür. Projenizin, aynı zamanda log4net'e bağlı olan LinqToExcel kütüphanesiyle aynı montaj sürümünü kullandığından emin olun. Ayrıca diğer kütüphaneler aynı montaj sürümünü kullanmalıdır. sorunu çözmek için ayrıca montaj kullanmak böylece gibi app.config yönlendirmek için deneyebilirsiniz:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /> 
     <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
6

deneyin

Install-Package log4net -Version 2.0.0 

2.0.0 log4net 1.2 içindir Sürüm Nuget kullanarak yüklemek için. 11

1

Benzer sorun yaşıyorum. Sorunun Log4Net sürüm 1.2.11'e referans veren LinqtoExcel'de olduğunu ve Log4Net'i sepratly'ye atıfta bulunduğunuzu ve en son 1.2.13 sürümünü aldığınızı düşünüyorum. Oluşturma çıktısında 1.2.13 ile sonuçlanacaksınız ve LintoExcel Log4Net'i çağırdığında, 1.2.11 ve hata olaylarını bekler.

0

Bu sorunu, yeni sürümün farklı bir anahtarla imzalandığını bulmak için log4net'i NuGet aracılığıyla yükselttikten sonra aldım.

Sen the apache log4net site gelen 'oldkey' versiyonunu yakala ve sonra benim için çalıştı.

İlgili konular