Почему так сложно делиться файлами ресурсов (resx) с моим клиентом Silverlight? - PullRequest
6 голосов
/ 15 марта 2011

Я пытаюсь передать файл ресурсов (файл .resx) из моей сети (RIA Service? Silverlight Host) клиенту (Silverlight), связав файл ресурсов с моим клиентом. Когда я пытаюсь получить доступ к ресурсам с помощью объекта ResourceManager, я получаю следующую ошибку:

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: 

Edit:

Когда я говорю, что я связывал файл ресурса, я имею в виду, что я использую опцию «Добавить как ссылку» при добавлении существующего файла resx в мой проект.

Ответы [ 4 ]

2 голосов
/ 09 октября 2012

(сомнительным) решением было:

  1. скопировать (обратная ссылка) файлы resx в клиент Silverlight.
  2. добавить «PublicResXFileCodeGenerator» в свойство Custom Tool для genФайл designer.cs.
  3. Открыл файл designer.cs и изменил пространство имен обратно на пространство файла web designer.cs.
  4. Построить решение для поиска / устранения связанных проблем пространства имен resx.

Это сработало, но я сомневаюсь в возможности иметь отдельные копии файлов resx.Помимо необходимости гарантировать, что изменения в файлах веб-рекс вручную дублируются на рекс-копии клиента Silverlight, есть ли другие потенциальные ловушки ... или есть альтернативное решение.

2 голосов
/ 19 марта 2011

В данный момент я тоже работаю над этой проблемой.Я сузил проблему до пространств имен.Я создал бизнес-приложение Silverlight и хотел переименовать веб-проект и изменить его пространство имен.Как только я сделал это, проект SL потерпел неудачу.

Проверьте это .Заметки на шаге 5 как бы объясняют ситуацию, но в настоящее время я пытаюсь найти достойный способ обойти это.

РЕДАКТИРОВАТЬ: Это сработало для меня: http://forums.silverlight.net/forums/p/184013/420509.aspx

0 голосов
/ 16 марта 2011

Добавление ссылки в качестве решения частично решает эту проблему, если я помещу файл ресурсов (добавленный как ссылка) в другую папку, отличную от той, которую создал шаблон, вы снова получите эту ошибку, вам придется Поместите все свои ресурсы в одну папку Web \ Resources, если вы планируете использовать шаблон. Но что произойдет, если вы захотите связать другие сервисы с их собственными ресурсами (сервисами Ria), хорошо, если я попробую любой метод до сегодняшнего дня, и я все еще получаю эту чокнутую ошибку

0 голосов
/ 15 марта 2011

Проверьте шаблон бизнес-приложения Silverlight (создайте новый проект, выберите шаблон бизнес-приложения Silverlight).

*. Совместное использование resx успешно достигается в этом проекте путем добавления существующих элементов в виде ссылок -> В своем проекте на стороне Silverlight добавьте элемент AddExisting, выберите файл * .resx, изучите кнопку «Добавить», разверните его и выберите Опция «Добавить как ссылку».

...