Wpf 为什么在同一程序集中找不到ResourceDictionary?

Wpf 为什么在同一程序集中找不到ResourceDictionary?,wpf,xaml,resourcedictionary,Wpf,Xaml,Resourcedictionary,我已将一些功能/文件从一个解决方案复制到另一个解决方案 在解决方案1中,我有Windows应用程序DemoApp1,其中包含文件夹: 壳 功能区/资源 在Shell/ShellView.xaml中 <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary

我已将一些功能/文件从一个解决方案复制到另一个解决方案

在解决方案1中,我有Windows应用程序DemoApp1,其中包含文件夹:

  • 功能区/资源
在Shell/ShellView.xaml中

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Ribbon/Resources/Ribbon.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

以上工作没有问题

在解决方案2中,我有一个Windows应用程序DemoApp2,它做的很少。App类继承自C#类库DemoApp2Feature中的一个类,该类执行大部分操作

Shell和Ribbond文件夹结构和文件在类库DemoApp2Feature中是相同的。然而,上述结果导致:

XamlParseException“Set property”System.Windows.ResourceDictionary.Source“引发了一个异常”

当我查看VS2015异常详细信息时,BaseUri如下所示:

{pack://application:,,,/DemoApp2Feature;component/shell/shellview.xaml}


我希望DemoApp2Feature中的文件和文件夹结构保持不变,因为有几十个文件具有这些合并字典定义。因此,我如何确定在何处查找DemoApp2Feature的ResourceDictionary的基础是什么呢?

我不确定我是否完全理解您的场景,但本页根据资源所在的位置解释了包URI的正确格式:


我不确定我是否完全理解您的场景,但本页根据资源所在的位置解释了包URI的正确格式:


谢谢!我试图问,当本地(我假设这意味着相同)程序集中的资源文件在运行时不工作,而IMO应该“/SubFolder/ResourceFile.xaml”时,为什么相对包URI不工作。在另一个解决方案中,它们可以工作。谢谢!我试图问,当本地(我假设这意味着相同)程序集中的资源文件在运行时不工作,而IMO应该“/SubFolder/ResourceFile.xaml”时,为什么相对包URI不工作。在另一种解决方案中,它们起作用。