В моем проекте WPF я держу пользовательский контроль в отдельном проекте библиотеки. Пользовательский элемент управления обращается к ресурсам в отдельном файле XAML, например:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/ViewResources.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Local styles here -->
</ResourceDictionary>
</UserControl.Resources>
Файл ресурсов, ViewResources.xaml, находится в папке в проекте библиотеки управления с именем Ресурсы. Он имеет действие по умолчанию (страница) и настраиваемый инструмент (MSBuild: Compile).
Проблема заключается в том, что я ссылаюсь на библиотеку управления в своем приложении WPF и использую пользовательский элемент управления. Во время выполнения я получаю следующее исключение XamlParseException:
Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
... который перекрывает IOException:
Cannot locate resource 'resources/viewresources.xaml'.
Как я могу это исправить? Я попытался изменить действие сборки файла ресурса на "контент" и скопировать его в выходной каталог (который работает для файлов и подобных "немых" ресурсов). Но безрезультатно. Кроме того, он не работает в пользовательском элементе управления.
Есть ли лучший способ указать путь?
Мне нужно переместить файл ресурса в проект приложения (я бы предпочел, чтобы он был в домене управления пользователями).