最近改造程序,做了个自动加载程序目录配置文件功能,但我调试过程获取路径用了 Environment.CurrentDirectory ,实际部署却发现有些时候程序自动启动失败了,经过追加日志分析发现这行:
加载配置文件出错!未能找到文件“C:\Windows\system32\config.json”。 |
之所以这里出问题,在于我的应用程序显然没有放在C:\Windows\system32\下,我把快捷方式放在启动文件夹,所以Environment.CurrentDirectory 就错了。但Environment.CurrentDirectory返回的路径却是这个,从而导致加载不到正确路径的文件。
现在有了DeepSeek确实方便,把问题丢给DS,得出的结论也非常快捷:
// 方法1:获取入口程序集所在目录(最可靠) string appDirectory1 = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
// 方法2:获取执行程序集所在目录 string appDirectory2 = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
// 方法3:使用反射获取代码基目录 string appDirectory3 = Path.GetDirectoryName( Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path)); |
原文地址:
https://www.opengps.cn/Blog/View.aspx?id=10076
文章的更新编辑依此链接为准。欢迎关注源站原创文章!