Bir C# uygulamasının yerleşik bir sürümünü almam ve başvuru dll'lerinden birini değiştirmem gerekiyor. Bunu yapmanın en iyi yolu nedir, referans dll'de belirli bir sürümü kapattım ancak dll'yi daha yeni bir sürümle değiştirmeyi test ettiğimde, "Dosya veya montaj XXXXX, Sürüm = XXXXX yüklenemedi." ? dll sadece yüklemeye çalışacaktır böylece dll sürümü hakkında bakımını yapması yükleyici durdurmak için bir yolBir C# projesinde başvuru dlight başvurusu olmadan bir başvuru dll yükseltme
17
A
cevap
18
Evet, orada yapabileceği bu -. MSDN makalesine Redirecting Assembly Versions bkz
sen bütün okumalısınız Belge, ancak, derlemenin yayıncısının bir "yayıncı ilke dosyası" oluşturduğunu veya tüketicinin bir bindingRedirect
ekleyerek bir app.config
dosyasına ekleyeceğini (doğrudan makaleden kopyalanan) içerir:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
birkaç not:
açıkça (çok değil yapmak gibi), bu ziyade "en-us" den "nötr" olacaktır kültürünüzü belirtmediyseniz.
Zaten bilmiyorsanız, sen montaj en gibi, güçlü bir isim yardımcı programını kullanarak anahtar belirteci kamu bu alabilirsiniz: recompile gerektirecektir
sn -t [AssemblyPath]
, olmaz o? –
Veya yapılandırma dosyası sadece çalışma zamanında kontrol edildi mi? –
Bu xml dosyaları çalışma zamanında kontrol edilir. Brian'ın söylediği gibi http://msdn.microsoft.com/en-us/library/yx7xezcf(VS.71).aspx – Brian