Başka bir üründen DLL'ye başvuran bir proje üzerinde çalışıyorum. Bu yöntem her yıl aynı kalıyor ve her ne kadar metotlar aynı kalsa da, her bir versiyon için derlemeler versiyonu değişiyor. 2009 için çalıştığım projeyi 2010 yılı için oluşturduğumda, farklı bir sürüme bağlı olduğu için hata veriyor. Bunun etrafında bir yolu var mı?Bir C# projesini, bir derlemenin sürüm numarasını dikkate almadan nasıl yapabilirsiniz?
cevap
Referansı seçmeyi deneyin ve özellik penceresinde Özel Sürüm'ü false olarak ayarlayın.
önce a yeni inşa montaj başvuran programın yeniden gerçekleştirmeden olmadan montaj sürümlerini takas sonra zamanında bir sorun atıfta ediyorsanız, programınızın uygulamasını kullanarak bir <bindingRedirect>
direktifini kullanmak isteyeceksiniz .Config (veya Web.config, bir web sitesinde bahsediyorsak.) bir montaj birinin uygulaması daha diğer bir sürümünü kullanmak Tamam .NET Framework talimat için kullanılır
bindingRedirect
orijinal olarak derlenmişti. Varsayılan olarak, CLR, uygulamanızın yapı sırasında başvuruda bulunduğu bir DLL dosyasının aynı sürümünü görmek ister ve eğer değilse, bir istisna atar.
Bu uygulama kök klasöründe koymak app.config meclisin farklı .net versiyonunu eşleştirmek mümkündür
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Waters.ACQUITY.Remote"
publicKeyToken="6c13fd0b3604de03"
culture="neutral" />
<bindingRedirect oldVersion="1.40.0.0"
newVersion="1.60.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Bu size referans olması montaj çözümü başka specifc için içindeki referanslar olmasıdır kütüphane versiyonu.
"Özel sürüm", derleme zamanında doğru olduğunda gerçekleşir. Bu sorunu önlemek için yanlış olmalı.
Görünüşe göre bu yalnızca derleme zamanı derleme başvurusunu etkiler. –