【问题标题】:An error occurred while finding the resource dictionary查找资源字典时出错
【发布时间】:2013-01-01 19:13:16
【问题描述】:

我在App.xaml Main 程序集中有一个合并的资源字典,它结合了来自不同程序集的各种资源字典: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>

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

An error occurred while finding the resource dictionary "/Common;component/Themes/Button.xaml".

还有警告:

The resource "BannerButton" could not be resolved.

我遇到了this post,但尽管构建操作设置为资源,问题仍然存在。另外,在 Visual Studio 2010 或 Expression Blend 4 下运行时,我没有遇到这个问题。主程序集肯定包含对通用程序集的引用,我没有更改包 URI。

【问题讨论】:

  • 你试过使用普通的相对路径吗?
  • @DJ 正常相对路径(资源字典在主程序集中的位置)工作正常。
  • @DJ 实际上,Visual Studio 不再抱怨错误,但设计师仍然没有应用样式。
  • 是的,因为您提供的路径是基于组件的。即使您解决了这个问题,您的 VS 也无法每次都显示设计师。实际上,您应该使用 Expression Blend 或 kaxaml 工具进行设计。 VS 在这些事情上有点痛苦
  • 我遇到了同样的错误:Source="/MyApp;components/bar.xml",然后意识到我有错别字:它是 component(单数)和 bar.xaml(XAML,不是 XML)。最终,这适用于将构建操作设置为 ResourcePage -- "Page" is just a binary resource -- 并使用以下任一源:pack://application:,,,/MyApp;component/bar.xaml/PushToTalk;component/bar.xaml/bar.xaml 或只是普通的 ole bar.xaml .我正在使用 VS 2012 更新 4。

标签: wpf visual-studio-2012


【解决方案1】:

我在使用 VS2019 时遇到此错误。

我只是重启VS,错误就消失了。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,原因是资源字典 xaml 文件中的单词拼写错误。检查资源字典 xaml 文件是否存在拼写错误和错误。更正拼写后,它起作用了。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 不幸的是,这仍然与 VS 2019 (16.4.2) 相关,并且您使我免于几天以来发生的不稳定和令人不安的错误...
      • 在版本 16.8.3 中仍然相关。我收到了烦人的错误消息,浅蓝色的下划线不会消失。关闭并重新打开解决方案解决了问题。
      【解决方案4】:

      如果您使用的是 Visual Studio 2017,请尝试重新启动计算机。问题可能会解决。

      【讨论】:

      • Visual Studio 2019(至少到版本 16.8.3)在我关闭并重新打开解决方案后问题为我解决了。
      【解决方案5】:

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

      【讨论】:

      • 我在程序集和项目(.NET 4 客户端配置文件和 .NET 非客户端)之间的 .NET 版本不匹配。一旦将两者放在相同的版本上,问题就消失了,正如 Andagavar 提供的链接中所述的“替代解决方案”。
      【解决方案6】:

      在 Window.Resources 中尝试相同的操作,确保在使用 app.xaml 时添加了命名空间,并且不要忘记将 build 选项更改为您需要的 page使用该 app.xaml。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多