MahApps.Metro IOException: 找不到资源 'styles/colors.xaml'
MahApps.Metro IOException: Cannot locate resource 'styles/colors.xaml'
我已经使用 NuGet 的 MahApps.Metro 一段时间了,没有任何问题。但是,最近我遇到了一些需要重新安装 NuGet 包的问题。
最后,我卸载了我需要的所有 NuGet 包并重新安装了它们。据我所知,现在一切正常,除了当我尝试启动应用程序时,它立即抛出上述异常:
System.Windows.Markup.XamlParseException: ''Set property 'System.Windows.ResourceDictionary.Source' threw an exception.' Line number '34' and line position '18'.'
Inner Exception
IOException: Cannot locate resource 'styles/colors.xaml'.
如果我检查那些指定的行,就是 <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
。
我的 App.xaml 看起来像这样:
<Application.Resources>
<ResourceDictionary>
<!-- Some other stuff is here -->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<!-- Bunch of other stuff here -->
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我尝试了其他类似问题的各种方法:
- 将 "Colors" 更改为 "Colours"
- 将 "Colors" 更改为 "colors"
- 改变"Colors to "颜色
- 恢复 NuGet 包
- Uninstalled/reinstalled 包裹
- 尝试过 x86、x64 和 AnyCPU 目标平台
- 无穷无尽的clean/rebuild解决方案,中间关闭VS2017
- 检查
StartupUri
是正确的
- 确保
Assembly name
和 Default namespace
不同(并且一直如此)
我完全不知道接下来要做什么...
我没有尝试过的一件事是使用旧版本...是的,MahApps.Metro 的 2.0.0 版改变了主题的制作方式。使用版本 1.6.5 可以解决此问题,或者您需要按照此处的迁移指南进行操作:https://mahapps.com/docs/guides/migration-to-v2.0
由于您很可能使用了 MahApps.Metro v2.0 的最新 NuGet
软件包,所以您遇到了这些错误。正如您提到的,我们需要遵循官方 Migration to v2.0 指南。以下步骤帮助我解决了可能会帮助遇到类似问题的 post 其他读者的问题:
移除标签<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
替换标签如
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Green.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />`
和
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Light.Green.xaml" />`
在标签 <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedTabControl.xaml" />
中删除单词 Animated
如有其他标签报错,请参考上述link。我用 link 解决了上述问题。
我已经使用 NuGet 的 MahApps.Metro 一段时间了,没有任何问题。但是,最近我遇到了一些需要重新安装 NuGet 包的问题。
最后,我卸载了我需要的所有 NuGet 包并重新安装了它们。据我所知,现在一切正常,除了当我尝试启动应用程序时,它立即抛出上述异常:
System.Windows.Markup.XamlParseException: ''Set property 'System.Windows.ResourceDictionary.Source' threw an exception.' Line number '34' and line position '18'.'
Inner Exception
IOException: Cannot locate resource 'styles/colors.xaml'.
如果我检查那些指定的行,就是 <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
。
我的 App.xaml 看起来像这样:
<Application.Resources>
<ResourceDictionary>
<!-- Some other stuff is here -->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<!-- Bunch of other stuff here -->
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我尝试了其他类似问题的各种方法:
- 将 "Colors" 更改为 "Colours"
- 将 "Colors" 更改为 "colors"
- 改变"Colors to "颜色
- 恢复 NuGet 包
- Uninstalled/reinstalled 包裹
- 尝试过 x86、x64 和 AnyCPU 目标平台
- 无穷无尽的clean/rebuild解决方案,中间关闭VS2017
- 检查
StartupUri
是正确的 - 确保
Assembly name
和Default namespace
不同(并且一直如此)
我完全不知道接下来要做什么...
我没有尝试过的一件事是使用旧版本...是的,MahApps.Metro 的 2.0.0 版改变了主题的制作方式。使用版本 1.6.5 可以解决此问题,或者您需要按照此处的迁移指南进行操作:https://mahapps.com/docs/guides/migration-to-v2.0
由于您很可能使用了 MahApps.Metro v2.0 的最新 NuGet
软件包,所以您遇到了这些错误。正如您提到的,我们需要遵循官方 Migration to v2.0 指南。以下步骤帮助我解决了可能会帮助遇到类似问题的 post 其他读者的问题:
移除标签
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
替换标签如
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Green.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />`
和
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Light.Green.xaml" />`
在标签
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedTabControl.xaml" />
中删除单词Animated
如有其他标签报错,请参考上述link。我用 link 解决了上述问题。