从不同的程序集加载合并的ResourceDictionary失败

cha*_*osr 11 .net c# wpf xaml

我已将所有应用程序的ResourceDictionaries放入一个单独的程序集中,并将它们合并到一个ResourceDictionary中,我希望将其作为资源包含在我的应用程序中:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="InputStyles.xaml"/>
        <ResourceDictionary Source="DataGridStyles.xaml"/>
        <ResourceDictionary Source="ComboboxStyles.xaml"/>
        <ResourceDictionary Source="CheckboxStyles.xaml"/>
        <ResourceDictionary Source="TabControlStyles.xaml"/>
        <ResourceDictionary Source="ButtonStyles.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

声明资源:

<Window.Resources>
    <ResourceDictionary Source="pack://application:,,,/StyleAssembly;component/Styles.xaml"/>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

在VS中查看设计器所有控件都显示文件中的样式,但是当我尝试启动应用程序时,我收到以下错误:

"找不到资源'inputstyles.xaml'."

所有文件的构建操作都设置为"页面",两个项目的构建都成功.我究竟做错了什么?

Aar*_*ver 7

生成操作应定义为资源或内容,如果你愿意做一些腿部的工作.

您的资源必须作为资源构建操作定义为项目的一部分.如果在项目中将资源.xaml文件作为资源包含在内,则无需将资源文件复制到输出目录,该资源已包含在已编译的应用程序中.您还可以使用内容构建操作,但必须将文件复制到输出目录,并将资源文件以与可执行文件相同的路径关系部署.