XAML 设计器无法在设计时加载资源文件

Posted

技术标签:

【中文标题】XAML 设计器无法在设计时加载资源文件【英文标题】:XAML designer can't load resource file at design time 【发布时间】:2014-02-24 12:31:49 【问题描述】:

我们有两个产品共享一个资源 DLL 项目。 DLL 中有三个不同的资源类。一个用于共享后端,第二个用于一个产品,最后一个用于另一个产品。

其中一个产品是 WPF Windows 应用程序。该应用程序有一个名为MyCommands 的静态类:

public static class CarSystemCommands 

    public static RoutedUICommand CameraStatus  get; set; 

    public static RoutedUICommand CancelChanges  get; set; 

    . . .

    static CarSystemCommands() 
        CameraStatus = new RoutedUICommand( Car.Dashboard_CameraStatus, "CameraStatus", typeof( CarSystemCommands ) );
        CancelChanges = new RoutedUICommand( Car.Common_CancelChanges, "CancelChanges", typeof( CarSystemCommands ) );
        . . .
    

一切都编译并运行良好。

现在,我有一个用户控件,在使用相同资源文件的项目中将其命名为CameraConfiguration。当我在 XAML 设计器中查看该用户控件时,它显示正常。

CameraConfigurtaion 用户控件包含在另一个用户控件中,称为SettingsEditor。当我在 XAML 设计器中查看 SettingsEditor 时,出现错误:

例外:无法创建“CameraConfiguration”的实例。

查看各种堆栈跟踪,我找到了一个:

FileNotFoundException:无法加载文件或程序集“资源,版本=5.1.15588.0,文化=中性,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。

资源项目只有默认引用。它没有引用任何其他 DLL 或项目。

正如我所说,一切都可以正确编译和运行。当我在设计器中编辑它时,报告问题的控件显示得非常好。

是否有人对导致此问题的原因有任何想法?或者我该如何解决?更改控件时无法查看控件,这很烦人。

编辑

自从我发布这个问题以来,我已经从 VS2012 转到 VS2013,然后转到 VS2015。这个问题还在发生!

【问题讨论】:

【参考方案1】:

我遇到了类似的问题。我使用过 Visual Studio 2010,并且有几个解决方案。在其中一个解决方案中,我在其他项目之间共享了控件和数据模型。每次我在其他解决方案中重建(未构建)这个项目时,我在设计时都会出错(应用程序运行完美)。我不得不清除第二个解决方案并再次构建它。现在我有 Visual Studio 2012 并且我没有那种类型的错误(而且我没有这种类型的解决方案)。

【讨论】:

我正在运行 VS 2012,我遇到了这个问题。这很烦人,但我正在忍受它。虽然如果我不必这样做会很好。 . .

以上是关于XAML 设计器无法在设计时加载资源文件的主要内容,如果未能解决你的问题,请参考以下文章

WPF中的xaml引用不同项目间资源的问题

x:绑定设计时问题

XAML 设计器未加载

Xamarin+Prism开发详解二:Xaml文件如何简单绑定Resources资源文件内容

如何在 UWP 类库中使用 XAML 静态资源和设计时数据

自研模块加载器 加载器结构与设计导论