Tamam ibaresini, bu gerçekten rahatsız edici, ben yükleme XAML kaynakları için WPF tarafından oluşturulan kod, WPF meclislerinin yan sürümleri yana desteklemek için gereken senaryolar için sorunlu olabilir, bu nedenle güçlü isim kullanılmasını görünür ve etmediğini daha önce fark etmiştim.nasıl montaj güçlü adını kullanmak kaynak URI'lerini kullanmak WPF zorlamak için? Ahh!
Durum böyle oldu ve şimdi sorunlara neden oluyor - Yalnızca sürüm numaralarında (montaj sürümleri) farklı olan eklentilerin yan yana kurulumunu desteklemesi beklenen bir eklenti sistemim var. . montajları aynı DLL dosya adını olsa bile farklı kimlikler olması belirlenmesi nedeniyle elbette bu .NET ile desteklenebilir, bunlar kesin adlandırılmış ve farklı bir kamu/özel anahtara sahip YA farklı montaj sürüm numarasına sahip ya şartıyla. görsel stüdyo tarafından pencereler ve usercontrols için oluşturulan koda bakarsak
Şimdi, aşağıdaki otomatik oluşturulan dosyada bakın:
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/Sensormatic.AMK1000.Panel;component/views/servicepanelui.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\ServicePanelUI.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
Uyarı kaynak bulucu oluşturulur hat - it xaml kaynağını içeren güçlü adı veya derlemenin sürümünü belirtmeyen göreceli bir URI kullanıyor.
belki LoadComponent çağıran meclisin kimliğini kontrol etmek ve genel anahtar ve versiyon detayları var ya da belki 'bu' parametresi için türünü içeren derleme kimliğini kontrol kullanmak düşündüm.Durum böyle değil - farklı sürüm numaralarına (ancak aynı dosya adına) sahip iki derlemeniz varsa, "Kaynak X bulunamıyor" iletisiyle bir IOException alabilirsiniz (yukarıdaki örnek için "Kaynak bulunamıyor) 'views/servicepanelui.xaml'.
Daha da kötüsü, bunun aynı dosya adıyla ancak farklı ortak/özel anahtarla, yani farklı yayıncılardan oluşan derlemeler de bu hatayla sonuçlanacağı anlamına geleceğinden eminim.
Yani, herkes bu etrafında nasıl biliyor.? nasıl uyumlu WPF güçlü isim yapmak.
Not kadarıyla bana kalırsa bu bir WPF hatasıdır. Bunu önlemek için yalnızca Appdomain yalıtımını kullanmanız gerekmemelidir.
Merhaba Phil, aynı sorunla karşı karşıya ediyorum. Buna herhangi bir çözüm buldunuz mu? –
WPF Özel denetimlerinde Temalar'ı (Kaynak Sözlükleri aracılığıyla) kullanarak benzer bir sorunla karşılaştı mı? Evet ise, bunun için herhangi bir çözüm var mı? – akjoshi
bu konuda herhangi bir haber var mı? –