今天收到反馈:某个界面功能在用户机器上表现异常。翻阅代码,初步定位在读取文件——因为该界面功能依据此文件设定。但是在公司任何机器上测试并无问题。所以,先断定是客户机器上的OS环境问题。
尝试跟踪了加载文件的代码,发现:在调用FileExisits时,传入的是相对路径(因为是在单元初始化是进行,业务对象根路径还没有初始化;业务对象路径目前是应用程序路径),FileExisits又调用GetFileAttributes,且返回是成功的。
如果进程当前的work directory是应用程序路径,那么可以找到——所以,在公司的机器中,均可正常运行。如果进程的work directory被改了,那么就找不到了。
为验证推测,程序改为在业务对象初始化时再加载文件,直接编译新程序,在客户机上测试——界面功能正常。
传相对路径进去,应该是无心之举。但由此也我们警醒,慎用相对路径...