查找资源字典时发生错误

Bla*_*ord 16 wpf visual-studio-2012

我在App.xaml主程序集中有一个合并的资源字典,它结合了来自不同程序集的各种资源字典:Common和PresentationLayer.

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Common;component/Themes/Button.xaml"/>
            <ResourceDictionary Source="/PresentationLayer;component/DataTemplates/AppointmentsDataTemplates.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

在运行时,资源字典中的样式将正确应用于控件.但是,在设计时不会应用样式,Visual Studio 2012会不断出现以下错误:

An error occurred while finding the resource dictionary "/Common;component/Themes/Button.xaml".
Run Code Online (Sandbox Code Playgroud)

并警告:

The resource "BannerButton" could not be resolved.
Run Code Online (Sandbox Code Playgroud)

我遇到过这篇文章,但问题仍然存在,尽管Build Action设置为Resource.此外,我在Visual Studio 2010或Expression Blend 4下运行时没有遇到此问题.主程序集肯定包含对Common程序集的引用,我没有更改Pack URI.

rat*_*ler 8

对于 VS2017,如果引用程序集并仔细检查所有命名是否正常,请尝试关闭 VS 并删除.vs解决方案目录中的目录。这将导致您丢失所有用户设置(启动项目、WPF 设计器缩放等),但会解决此问题。

  • 不幸的是,这仍然与 VS 2019 (16.4.2) 相关,并且你使我免于几天以来发生的不稳定和令人不安的错误...... (2认同)

Bla*_*ord 7

这是Visual Studio 2012的已知问题.请参阅Microsoft Connect上的此链接.安装VS2012 Update 1后,此问题已解决.如果您认为自己运行的是最新版本的VS2012并且仍然遇到此问题,请确保已应用更新.我以为我已经使用Windows Update进行了更新,但后来发现我必须告诉VS2012应用更新.VS2012做完之后一切都很好.

  • 我在程序集和项目(.NET 4客户端配置文件和.NET非客户端)之间的.NET版本不匹配.一旦将两者放在同一版本上,问题就会消失,如Andagavar提供的链接中所描述的"替代解决方案". (2认同)