Bağlayıcı yönlendirmeler neden gerekli? Kitaplık B'ye ve ayrıca 1.1.2.5 sürümünün C kitaplığına başvuran A uygulamanız olduğunu varsayalım. Kitaplık B de kitaplık C'ye başvurur, ancak 1.1.1.0 sürümüne aittir. Şimdi bir çatışmamız var çünkü çalışma zamanında aynı derlemenin farklı sürümlerini yükleyemezsiniz. Bu çelişkiyi çözmek için, genellikle yeni sürüme (ancak eski sürümde de olabilir) bağlama yeniden yönlendirmesini kullanabilirsiniz. Bunu, configuration > runtime > assemblyBinding
bölümün altındaki A uygulamasının app.config dosyasına aşağıdakileri ekleyerek yaparsınız (tam yapılandırma dosyası örneği için buraya bakın ):
<dependentAssembly>
<assemblyIdentity name="C"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<bindingRedirect oldVersion="1.1.1.0" newVersion="1.1.2.5" />
</dependentAssembly>
Eşlenecek bir dizi sürüm de belirtebilirsiniz:
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.2.5" />
1.1.1.0 sürümünün C'sine referansla derlenmiş olan kitaplık B, çalışma zamanında 1.1.2.5 sürümünün C'sini kullanacaktır. Elbette, C kitaplığının geriye dönük olarak uyumlu olduğundan emin olmanız daha iyi olur, aksi takdirde bu beklenmedik sonuçlara yol açabilir.
Yalnızca büyük sürümleri değil, kitaplıkların tüm sürümlerini yeniden yönlendirebilirsiniz.
oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"