IOException:在Visual Studio中“无法找到资源”

时间:2018-11-21 13:29:37

标签: c# wpf visual-studio xaml visual-studio-2017

我有一个WPF程序,带有一个主窗口,该程序利用位于子文件夹中的一些资源字典,如您在此处看到的(我们很快就会明白,为什么我要突出显示其中之一):

File structure in my project

在我的 MainWindow.xaml 的顶部,包括一些这些资源词典,例如:

<ResourceDictionary>      
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/XamlResources/ControlTemplates.xaml" />
        <ResourceDictionary Source="pack://application:,,,/XamlResources/TextBlockStyles.xaml" />
        <ResourceDictionary Source="pack://application:,,,/XamlResources/Styles.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

因此,显然一切都应达到了,程序确实可以编译并运行良好。没有例外,没有警告,一切都很好。除非不是。因为在Visual Studio编辑器中,这是设计窗口显示的内容:

IOException in the Visual Studio editor.

当一切看​​起来都应该正确时,为什么会出现此错误?我尝试使用“查找”功能来搜索 controltemplate.xaml 的其他事件,但是我只找到有效的引用。这是某种Visual Studio错误吗?如果是,该如何解决?

更新

摆弄XAML(例如更改源的格式化方式)有时会导致错误更改为SqlException,如下所示:

SqlException, which sometimes occur instead of the IOException.

我不知道为什么会这样,或者为什么异常似乎会不时发生变化。我正在使用实体框架,如果这可能是根本原因,但是我没有安装本地SQL Server。但是,在以前的项目中这并不是问题。

1 个答案:

答案 0 :(得分:0)

我们的应用程序中有一个类似的设置,并使用它:

<ResourceDictionary>      
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="/Your.Assembly.Name;component/XamlResources/TextBlockStyles.xaml" />
      <!-- ... -->
 </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>