Связанные файлы в структуре папок - PullRequest
2 голосов
/ 27 мая 2009

В Visual Studio, когда я связал файл из одного проекта с другим, я получаю следующую ошибку при попытке загрузить связанный ресурс. Это происходит только тогда, когда связанный файл находится в папке (ах).

Ошибка:

Message = "'pack: // application: ,,, / projectName; component / ResourceDictionary .xaml" Значение не может быть присвоено свойству' Source 'объекта' System.Windows.SharedResourceDictionary '.

Пример:

Project1.Resources
           |
           |--> MergedResourceDictionary.xaml
           |--> ProjectResourceDictionary.xaml
           |--> Folder
                     |
                     |--> SharedResourceDictionary.xaml           


Project2.Resources
           |
           |--> MergedResourceDictionary.xaml
           |--> ProjectResourceDictionary.xaml
           |--> Folder
                     |
                     |--> SharedResourceDictionary.xaml  **LINKED**

Если в MergedResourceDictionary.xaml мы объединили эти словари, то «SharedResourceDictionary.xaml в Project2 не будет найден. Однако, если SharedResourceDictionary.xaml связан с корнем проекта, тогда ресурс будет найден во время выполнения.

** ПРИМЕЧАНИЕ. В «obj / debug» проекта2 все связанные ресурсы находятся в корневом каталоге, тогда как ресурсы проекта1 остаются в структуре папок, назначенной проекту.

Шаги для воссоздания Это происходит во время выполнения. Шаги следующие (с использованием файлов, перечисленных в оригинальном сообщении).

1) Создайте SharedResourceDictionary в Project1, в «Папке» 2) Создайте «Папку» в Project2, затем добавьте «как ссылку» SharedResourceDictionary в папке 3) Сборка и запуск приложения 4) Приложение не сможет найти SharedResourceDictionary.xaml, поскольку оно находится в папке. Удаление файла из структуры папок будет нормально работать как связанный файл.

Я ценю любую помощь,

Крис

1 Ответ

1 голос
/ 19 декабря 2009

Я провел некоторое время, работая с поддержкой Microsoft по этой проблеме. Это ошибка в MsBuild, и сомнительно, что они исправят ее в будущем.

Я нашел обходной путь для всех, кто интересуется:

Создайте событие PostBuild, которое запускает LocBaml, создает необходимую структуру папок и помещает файлы в правильную папку.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...