2011-05-26 25 views
10

ş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.

ben doğru cevabı GAC'DE SomeThirdParty yüklemeden ilgili olacak, ama ben bunu hakkında gitmek istiyorum tam olarak nasıl ve diğer geliştiriciler ve sunucularını nasıl etkileyeceğinden emin değilim. olabilecek

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

cevap

6

. Gacutil yardımcı programını veya Başlat-> Çalıştır> montajını kullanın, ardından sürükle-bırak yöntemini tıklayın. cevabım önceki Dan

+2

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. –

3

: https://stackoverflow.com/a/19576769/2367343

Ben Oracle.DataAccess.dll kullanarak görsel stüdyo web geliştirici için bu dün karşılaştım.

Benim çözümüm,

sağ projenizi tıklayın (* .Csproj) ve düzenleyin. Sağ altına

:

<PropertyGroup> 

Yeri

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> 

Sonra çözüm yeniden. İki sürüm dlls'i, projenizi eklerken (gerekli) iki farklı dizine ayırmalısınız.

bu dll her iki sürümünü kullanmak için IDE verir Doing

ora11 >> Oracle.DataAccess.dll (Version 11) 

ora9 >> Oracle.DataAccess.dll (Version 9) 

yaptı.

İlgili konular