Visual Studio 2008 projem, her ikisi de aynı üçüncü gruba (C) referans veren iki (harici) derlemeyi (A + B) referans alır. Bununla birlikte, A takımı, C montajının, B düzeneğinin sahip olmasını beklediğinden farklı olan bir kamu anahtarına sahip olmasını bekler.Referans iki eşit derlemeler, yalnızca genel anahtarlar farklıdır
İşte bariz istisna bir örnek:
dosya veya derleme yüklenemedi 'Newtonsoft.Json, Sürüm = 3.5.0.0, Culture = neutral, PublicKeyToken = 9ad232b50c3e6444' ya da bağımlılıklarından biri. Bulunan düzeneğin manifest tanımı, montaj referansı ile uyuşmuyor. (HRESULT özel durum: 0x80131040)
Tabii, onların dosya adları eşit olarak aynı dizinde C her iki sürümünü (sadece genel anahtar ayrılan) koymak mümkün olmaz. İkincisi, yapılandırma dosyasından derleme bağlamasının yalnızca ortak anahtar eşlemesi değil, sürüm eşlemesine izin verdiğini buldum.
Ayrıca, derlemeleri C'den birini ayrı bir dizine koymaya ve derlemeleri yüklerken bu dizinde aramak için CLR'yi yapılandırmaya çalıştım. Maalesef işe yaramazdım.
Dış kütüphanelerden birini (bir tanesi açık kaynaklı olmak üzere) yeniden derlemenin bu sorunu çözeceğini biliyordum, ancak gerekli değilse, bu yükü bakım planıma eklemek istemiyorum.
Bu yüzden sorum şu: yalnızca genel anahtarla farklılık gösteren C kümesinin her iki sürümüne nasıl başvururum?
GÜNCELLEME
ben ILMerge kullanarak ilginç bir çözüm sağlayan, ilgili soruya this answer tökezledi. Henüz kontrol etmedim ama bu sorunla uğraşan herkes için yararlı olabilir. AssemblyResolve
çalıştıkları sürece
Benzer bir sorun ve [bu] (http://stackoverflow.com/questions/2460542/using-different-versions-of-the-same-assembly-in-the-same-folder/2461746#2461746) vardı ben nasıl çözdüm. –