2010-12-07 13 views
14

Log4net.dll dosyasının farklı sürümlerine bağımlı olan, uygulamanız için kritik olan iki farklı kitaplığım var. Benim bin klasörde her iki dll denemek kullandığınız üçüncü taraf parça alır zamanki hata verir:3. parti kitaplıkları, log4net.dll dosyasının farklı sürümlerine başvurur

Dosya veya derleme yüklenemedi 'log4net, Sürüm = 1.2.10.0, Culture = neutral, PublicKeyToken = 1b44e1d426115821' veya bağımlılıklarından biri. Bulunan düzeneğin manifest tanımı, montaj referansı ile uyuşmuyor. (HRESULT özel durum: 0x80131040)

Uygulamanın hem dll öğelerine başvuru yapabilmesinin bir yolu var mı? Üçüncü taraf dll'ler, bu uygulama için kritik olan Windsor'un IOC konteyneri ve Paypal API'sidir.

+0

Burada bir dal üzerinde gidiyorum ama güvenlik kodunu da sahibi olmadan meclisleri ILMerge düşünüyorum ve bu sorunu temize olacaktır. –

cevap

9

Bu soruda size yardımcı olabilecek bazı yanıtlar olabilir. o log4net olup Windsor kendisi bağlıdır Windsor'un Günlüğü Tesisi ise

Referencing 2 different versions of log4net in the same solution

Alternatif olarak, PayPal API tarafından kullanılan log4net sürümüne dayanan kendi log4net soyutlama yazabilmek ve söyleyebilir Windsor bunun yerine kullanacak. İşte

Castle'nin kaynak kod havuzunda log4net soyutlama yeri: Ben bu yüzden nasıl kendi log4net soyutlama başvurmak için yapılandırmanız söyleyemem Castle kullanmayan https://github.com/castleproject/Castle.Core/tree/master/src/Castle.Services.Logging.log4netIntegration

, ama bunu bahis çok zor değil (mümkün olduğunu varsayarak).

Burada, SO log4net ile Yapılandırmayı betimleyen SO üzerinde başka bir gönderiye bağlantı var. Ayrıca özel bir günlük günlüğü tesis yazma konusunda kısaca bahsediyor:

Logging with Castle.Facilities.Logging and log4net

İyi şanslar!

+0

Teşekkürler, ilk bağlantı işe yaradı! Log4net.dll için tüm proje referansları kaldırarak ve farklı sürümleri için çalışma zamanı referansları oluşturmak için app/web.config kullanarak, uygulama her iki dll bir uyumsuzluk hakkında şikayet etmeden bulmak mümkün oldu. Ayrıntılar için wageoghe'nin "Aynı çözümdeki 2 farklı log4net sürümüne başvurma" bağlantısına bakın. –

1

Gitmek için başka bir yol sanırım, ama asla kendim yapmadım, onları GAC'ye koyuyor.

GAC'de aynı dll'nin farklı sürümlerine sahip olabileceğinize inanıyorum ve iyi olmalısınız.

Ama aynı zamanda deli olabilir :)

+3

Evet yapabilirsin, ama bu zarif bir çözüm değil. – alexandrudicu

+1

Bunun için her makinede GAC yüklemesi yapmanız gereken bir ölçeklenebilirlik sorunu yaşıyorsunuz. .config içine koymak, bunun uygulama ile dağıtılmasını sağlar. –

İlgili konular