Я столкнулся с той же проблемой, тем же общим сообщением об ошибке и нашел решение.Кажется, это ошибка IMHO.
Я создаю приложение для .Net, SL5, WP7.1.Для этого я поместил код в приложение .Net и добавил ссылки на источники для других проектов.Отлично работает.
Мои основные проекты приложений называются MyApp.Net, MyApp.SL и MyApp.WP.Тем не менее, я делаю пространство имен по умолчанию и вывод проекта для этих проектов просто MyApp.Опять же, работает отлично, как и должно.
Я размещаю свои ресурсы в проектах MyApp.Resources.Net, MyApp.Resources.SL и MyApp.Resources.WP.Есть некоторые затруднения с использованием исходных ссылок VS, поскольку Expression Blend хочет прямой доступ к физическим файлам и запутывается, когда (например) проект MyApp.Resources.WP содержит исходную ссылку на файл MyStyles.xaml вMyApp.Resources.Net проекты.Поэтому все мои проекты ресурсов на самом деле содержат физические файлы.Это также отлично работает, мне просто нужно синхронизировать файлы вручную.Пока проблем нет.
Однако для своих проектов ресурсов я изменяю пространство имен и выходные файлы на MyApp.Resources.Это также делает мой код приложения простым, независимо от платформы, для которой оно построено, пространство имен одно и то же.
Да, я знаю, что это немного сложно, но это позволяет мне строить для 3 платформ (технически 5, если вывключая Blendability и UnitTesting) с одной и той же кодовой базой.
Для продолжения, если я создаю ResourceDictionary как таковой
<ResourceDictionary Source="/MyApp.Resources;component/Styles/TextStyles.xaml"/>
, я получаю Не удалось назначить свойству 'System.Windows.ResourceDictionary.Source 'и т.д ...
Короче говоря, я обнаружил, что если имя сборки содержит "."эта ошибка обнаруживается.Например, если я изменю имена своих проектов на «Ресурсы», это будет нормально работать.Или, если я оставлю свои проекты с именами сборки по умолчанию 'MyApp.Resources.WP', это также будет нормально работать.
Это не имеет ничего общего с изменением имен выходных файлов моего dll ресурса, я меняю их весь деньи это прекрасно работает, но если они содержат «.»Я получаю вышеуказанную ошибку.Например, я могу изменить имя вывода на «MyAppResourceThatWorks» (оставив имя проекта как MyApp.Resources.WP и загрузить его в App.xaml с помощью
<ResourceDictionary Source="/MyAppResourceThatWorks;component/Styles/TextStyles.xaml"/>
Работает отлично. Измените имя вывода на «MyAppResourcesThatDoNot.Work "и загрузите его с ошибками
<ResourceDictionary Source="/MyAppResourceThatDoNot.Work;component/Styles/TextStyles.xaml"/>
.
Да, я пытался изменить свойства сборки и т. Д. И т. Д. И т. Д. Это проблема загрузки с пакетом Uri.