2011-03-15 10 views
6

Kaynak dosyamı istemcime bağlayarak bir kaynak dosyasını (.resx dosyası) web sitemden (RIA Service? Silverlight Host) istemciye (Silverlight) paylaşmaya çalışıyorum.Kaynak dosyalarını (resx) Silverlight istemcim ile paylaşmak neden bu kadar zor?

System.Resources.MissingManifestResourceException was caught 
    Message=Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "PPCa.Modules.ProjectManager.Client.ViewModels.ResourceStrings.resources" was correctly embedded or linked into assembly "PPCa.Modules.ProjectManager.Client" at compile time, or that all the satellite assemblies required are loadable and fully signed. 
    StackTrace: 
     at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName) 
     at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark& stackMark) 
     at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark) 
     at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) 
     at System.Resources.ResourceManager.GetString(String name, CultureInfo culture) 
     at System.Resources.ResourceManager.GetString(String name) 
     at PPCa.Modules.ProjectManager.Web.Helpers.ResourceHelper.GetEnumText[TResource](ProjectStatus a_projectStatus) 
    InnerException: 

Düzenleme::

ben kullanıyorum Yani, kaynak dosyası bağlama söylemek 'olarak ekle ben aşağıdaki hatayı alıyorum ResourceManager nesnesini kullanarak erişim kaynaklarına çalıştığınızda Mevcut resx dosyasını projeme eklerken 'bağlantı' seçeneğini işaretleyin.

+0

Çünkü SL proje türü .NET çerçevesinin bir alt kümesini kullanıyor ve RIA servie proje türünde bulunmuyor mu? –

+0

ne demek istiyorsun? – Jordan

cevap

2

Şu anda bu sorunla uğraşıyorum anı da. Sorunu ad alanlarına daraltdım. Benim için bir Silverlight Business Uygulaması oluşturdum ve web projesini yeniden adlandırmak ve ad alanını değiştirmek istedim. Bunu yaptığım anda SL projesi kırıldı.

this çıkışını kontrol edin. 5. adımdaki notlar durumu açıklıyor, ama şu anda bu konuda iyi bir yol bulmaya çalışıyorum.

DÜZENLEME: Bu benim için çalıştı: http://forums.silverlight.net/forums/p/184013/420509.aspx

+0

Bahşiş için teşekkürler, bu da benim için Silverlight İş Uygulaması oluşturduktan sonra ad alanlarını değiştirmeye çalıştı. –

+2

Silverlight forumları bağlantısı kesildi ve bu yanıt işe yaramaz hale geldi. –

0

Silverlight Business Application şablonunu inceleyin (Yeni bir proje oluşturun, Silverlight Business Application şablonunu seçin).

* .Resx paylaşımı succesffully bağlantılar olarak varolan öğeleri ekleme yoluyla bu projede elde edilir -> Lütfen Silverlight tarafı projesi AddExisting öğesi, incelemek, sizin * .resx dosyasını seçin yılında 'Ekle' düğmesine genişletmek ve seçmek 'Bağlantı olarak ekle' seçeneği.

+0

Biliyorum, bu benim taklit ettiğim model. Bu, bir Silverlight Business Application şablonu olan birincil uygulamam tarafından MEF aracılığıyla bulunan bir RIA Servis Sınıf Kitaplığı'ndan oluşan bir eklentinin içinde yer almaktadır. Ve 'Bağlantı olarak ekle' seçeneğini kullanıyorum. Soruyu okuyun. – Jordan

+0

.resx dosyanızın kod nesli herkese açık mı? (check Properties) – Maciek

+0

PublicResXFileCodeGenerator'ı özel bir araç olarak kullanıyorum, eğer sormak istediğiniz buysa. – Jordan

0

Çözüm olarak bağlantı olarak ekle, bu sorunu kısmen çözer, eğer bir kaynak dosyasını (bağlantı olarak eklenir) şablonun oluşturduğu değil başka bir klasöre koyarsam, bu hatayı tekrar alırsınız. şablonu kullanmayı planlıyorsanız tüm kaynaklarınızı aynı Web \ Resources klasörüne yerleştirmek için. Ancak, diğer kaynaklara kendi hizmetleriyle (Ria hizmetleri) bağlantı kurmak isterseniz, bu güne kadar herhangi bir yöntem denediğimde ve yine de şu freaking hatasını alsam ne olur?

2

A (şüpheli) çözümü oldu:

  1. kopyası (yardımcısı link) Silverlight istemciye resx dosyaları.
  2. , "ToolResXFileCodeGenerator" öğesini Özel Araç özelliğine gen designer.cs dosyasına ekleyin.
  3. designer.cs dosyasını açtı ve ad alanını web designer.cs dosyasınınki ile değiştirdi.
  4. İlgili resx ad alanı sorunlarını bulmak/ayarlamak için çözüm oluşturun.

Çalıştı, ancak resx dosyalarının ayrı kopyalarına sahip olmanın fizibilitesini sorguladım. Web resx dosyalarındaki değişikliklerin, silverlight istemci resx kopyalarına manuel olarak kopyalanması dışında, başka potansiyel tuzaklar var mı ... yoksa alternatif bir çözüm var mı?

İlgili konular