2010-11-18 10 views
4

'a bağlı olduğunda yeni publicKeyToken ile derlemenin başka bir sürümünü kullanın nhibernate ile log4net'in yeni bir sürümünü kullanmak istiyorum. Log4net sürümü, svn kaynağından kendim tarafından derlenmiştir, bu yüzden publicKeyToken değiştiği anlamına gelen yeni bir anahtarla imzalamak zorunda kaldım. Ayrıca bu sürümü 1.2.11.0 olarak ayarlıyorum. Sorun, nhibernate log4net'in eski 1.2.10.0 sürümüne gönderme yapılmasıdır. Üçüncü taraf lib eski sürüm

ben app.config bu kısmı ile montaj bağlama yönlendirmeyi yapılandırmak için çalıştı:

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="log4net" 
         publicKeyToken="1b44e1d426115821"/> 
    <bindingRedirect oldVersion="1.2.10.0" 
        newVersion="1.2.11.0"/> 
    </dependentAssembly> 
</assemblyBinding> 

Ancak herhangi bir etkiye sahip görünmemektedir. Bunun, publicKeyToken'in uyuşmadığı için varsayıyorum.

Bunu yapmak için başka bir yol var mı yoksa I: a. Log4net 1.2.10 kullanın ve ilgilenen svn codebase eklentileri ve düzeltmeleri ile bir log4net uzantıları projesi oluşturmak? VEYA b. Kendi log4net derlemi VEYA c kullanarak nhibernate kendi sürümü oluşturun c. Log4net ekibinin log4net'in yeni bir sürümünü doğru publicKeyToken

ile serbest bırakmasını tercih ederim c. ve dürüstçe neden çağlar içinde yeni bir derleme sürümü yayınlamadıklarını anlayamıyorum, svn kaynağında çok sayıda düzeltme ve yeni işlevler var.

+1

Evet, küçük düzeltmeler için yeni anahtarlar kullanan yazarlar çok sinir bozucu olabilir. – ladenedge

cevap

2

İstediğiniz şey tam olarak hangi imzalamanın önlenmesidir.

Ayrıca c) seçeneğinizin yeni bir Hazırda Bekleme yapısı gerektirdiğini unutmayın.

b) En iyi vuruşunuz bence.

+1

Ben c) yeni bir nhibernate yapı gerektirmeyeceğini düşünüyorum çünkü yeni log4net derlemesi aynı publicKeyToken sahip olacak, böylece montaj bağlama yeniden yönlendirme çalışması gerekir. Kendi yapmamla ilgili sorun, farklı bir anahtarla imzalandığımı söylediğim gibi. – Trygve

+0

Evet, yanlış okudum. Eski anahtarları kullanarak güncellemelerini istiyorsunuz. –

+0

Henk, "Ne istediğin tam olarak neyi imzalamayı hedefliyor." Dedin. Neden eski sürümüne karşı derlenmiş kodla dinamik olarak bağlantılı bir derlemenin daha yeni bir sürümünü kullanamıyorum? Bu bir güvenlik riski nasıldır? –