C# WPF应用启动触发NullReferenceException,指向不存在的开发路径
排查.NET 4.8.1 WPF应用NullReferenceException及异常路径来源问题
基于.NET 4.8.1开发的C# WPF应用,在客户Windows 10 21H2工作站上突然无法启动,触发NullReferenceException。应用自2021年未进行更新,本地程序+U:网共享Access数据库的配置自2017年起一直正常运行。
异常内部堆栈信息如下:
Inner Exception: System.Reflection.TargetInvocationException: An invocation target threw an exception. ---> System.TypeInitializationException: The type initializer for "MVVM.Framework.Locator.ObjectLocator" threw an exception. ---> System.Reflection.TargetInvocationException: An invocation target threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object. at MyApplication.ViewModel.ViewModel..ctor() in F:\MyApplication\Application.cs:line 1028. at MyApplication.ViewModel.ViewModel..ctor() in F:\MyApplication\Application.cs:line 1013.
其中F:\MyApplication是开发机器的本地代码路径,该路径在客户工作站上不存在。本地开发环境及其他同Windows版本、同U:共享配置的测试机器上应用运行正常,客户仅在故障前安装了Windows更新KB5017380。
已执行的排查步骤:
- 将客户工作站的U:盘映射改为F:,触发ODBC错误:
ERROR [HY024][MICROSOFT][ODBC MICROSOFT ACCESS DRIVER]'(unknown)' is not a valid path. - 检查应用的
*.settings和*.config文件,未发现硬编码的F:路径 - 验证用户对本地程序文件夹及网共享数据库的访问权限,权限正常
- 检查本地ODBC连接配置路径,无异常
- 全局搜索应用源码,确认不存在硬编码的F:路径
- 在客户另一台相同配置的工作站部署应用,出现完全相同的错误
现寻求排查该异常中出现的本地开发路径来源的提示。
内容的提问来源于stack exchange,提问作者GeoCoder
相关产品推荐
相关产品推荐

