VS2010开发的WPF程序在VS2017运行时ResourceDictionary加载异常求助
解决WPF项目从VS2010迁移到VS2017后ResourceDictionary找不到的问题
这个问题我之前帮团队迁移老项目时碰到过好几次,本质是VS版本更替后,资源文件的路径解析规则和属性配置要求变严格了,咱们一步步来排查修复:
统一路径格式与大小写
你看错误提示里找的是resourcedic/maindictionary.xaml,但你App.xaml里写的是ResourceDic\MainDictionary.xaml——VS2017对文件路径的大小写敏感度比VS2010高很多,而且WPF官方推荐用正斜杠/作为路径分隔符。建议把代码改成和实际文件完全匹配的格式:<ResourceDictionary Source="ResourceDic/MainDictionary.xaml"/>检查资源文件的属性配置
找到项目里的MainDictionary.xaml文件,右键选「属性」,确认两个关键设置:- 「生成操作」设为 Resource(这是WPF资源文件的标准配置,会把文件嵌入程序集)或者 Content
- 「复制到输出目录」设为 如果较新则复制(避免每次都重复复制)
VS2010的默认属性可能和VS2017不一致,这是导致文件没被正确打包的常见原因。
确认文件在项目中的位置
手动核对项目结构:确保ResourceDic文件夹确实在项目根目录下,而且MainDictionary.xaml已经被包含在项目里(如果迁移后文件没被自动加载,右键ResourceDic文件夹选「添加现有项」把文件加进来)。清理重建项目
旧的输出缓存有时候会搞事情,按这个流程来:- 点击VS顶部菜单「生成」→「清理解决方案」
- 手动删除项目目录下的
bin和obj文件夹 - 重新生成解决方案后再运行
一般做完这几步,这个找不到资源的问题就解决了。
内容的提问来源于stack exchange,提问作者Anil Bali
相关产品推荐
相关产品推荐

