şekilde ben şanslı ve bunun ortak bir biri olduğunu düşünüyorum olsa da, bu sorunla başa çıkmak zorunda kalmamıştım:kullanılması farklı versiyonları
Bir web projesi var, hadi SomeProject
diyelim. SomeProject
bir üçüncü taraf kitaplığına başvuruda bulunuyor, buna SomeThirdParty
, sürüm 1.0 diyelim. SomeProject
ayrıca bir evde yetiştirilen sınıf kütüphanesi için bir referans var, onu SomeLibrary
diyelim. SomeLibrary
ayrıca SomeThirdParty
referansına sahiptir, ancak farklı bir versiyona sahiptir (2.0 diyelim).
Versiyon 1.0 ve 2.0 SomeThirdParty
payı aynı imzaların çoğu ancak farklı uygulamalar vardır. 1.0 uygulamasını kullanmak için SomeProject
'a ve mümkünse 2.0 uygulamasını kullanmak için SomeLibrary
'a ihtiyacım var.
Log4net olan referans kullanarak SomeProject
derleme. Depo dizininde biten DLL, SomeProject
referanslarından biridir. Çalışma zamanında, SomeLibrary
koşular kod, bu SomeThirdParty
sürümü 2.0 kod yürütmeye çalıştığında ve tabii başarısız ait bir FileLoadException: Could not load file or assembly '
SomeThirdParty Açıkçası , Version=2.0.0.0, Culture=[etc.]' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.
Ben yeni DLL SomeProject
yükseltme veya daha eski SomeLibrary
sürümüne olabilir atma DLL, ancak birçok nedenden dolayı ideal olmaz.
Herhangi bir öneriniz takdir edilmektedir.
Yardımlarınız için teşekkürler. Ne istediğinizi yapmalıyım GAC içine SomeThirdParty her iki sürümünü koyarak
Ben de öyle tür That.Bu rotaya gitmek istemiyorum, çünkü tüm geliştiricilerimizin makinelerinde ve tüm sunucularda ve gelen geliştiricilerde montajların GAC'a yükleneceği anlamına geliyor. Ama bir alternatif bulamazsak bunu aklımda tutacağım. Teşekkürler. –