2012-12-20 2 views
1

Я создал библиотеку классов silverlight, которая будет использоваться несколькими клиентскими проектами. Внутри библиотеки классов у меня есть локализованное диалоговое окно с локализованным текстом: You have unsaved pending changes. Этот текст хранится в Messages.resx (и переводы в Messages.da.resx и т.д.) и доступ к следующим образом:Локализованные ресурсы в библиотеке классов silverlight

Prompt.Announce(Messages.Verify, Messages.UnsavedChanges) 

Однако, когда я добавить ссылку на DLL библиотеки классов из моих проектов клиента SilverLight, диалоговое окно всегда показывает вверх с языком по умолчанию (английский).

Я могу видеть, что вывод библиотеки классов сборки, как этот

  • корень
    • SilverlightClassLib.dll
    • да
    • SilverlightClassLib.resources.dll

Но клиент bu Выход ild отсутствует, поэтому я предполагаю, что датские переводы скрываются там - но как мне включить это в потребляющие проекты Silverlight?

UPDATE:
Это структура папок в TFS:

  • Classlib
    • Распределение
      • да
    • Ссылки
    • Источник
  • Client
    • Ссылки
    • Источник
+0

Работает ли он во время отладки VS? – Remy

+0

Нет, это не – sondergard

ответ

2

Похоже, проблема развертывания. Вам необходимо развернуть сборочные сборки вашей библиотеки классов (da \ SilverlightClassLib.resources.dll) в двоичной папке вашего клиента (все еще в подпапке «da», если она отсутствует).

+0

Нет ли автоматизированного способа сделать это? Невозможно скопировать библиотеки DLL локально при перераспределении библиотеки классов. Когда вы включаете DLL-файлы .NET, такие как System.ServiceModel.DomainServices.EntityFramework, соответствующая .resources.dll автоматически развертывается в папку bin клиента. Возможно ли достичь этого (без необходимости установки в GAC или аналогичный)? – sondergard

+0

Как вы управляете зависимостью в ваших проектах клиента? Если вы используете NuGet, вы можете включить спутниковые сборки рядом с библиотекой классов в пакете. – Clafou

+0

Все хранится в TFS, поэтому я строю classlib в папку с контролируемым источником «Распространение», копирую DLL-файлы в папку «Ссылки», контролируемую исходным кодом, в рамках проекта клиента, и добавьте ссылку на DLL оттуда (я обновил вопрос, чтобы отразить структуру папок TFS) До сих пор я просто скопировал основную библиотеку dll класса, а не вложенные подпапки языка, но даже если я это сделаю, я не вижу, как я мог бы включить их в проект клиента. – sondergard

Смежные вопросы