如何避免.NET程序读取当前目录时遇到的问题?

2026-05-06 02:060阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1913个文字,预计阅读时间需要8分钟。

如何避免.NET程序读取当前目录时遇到的问题?

近期有AgileConfig用户反馈,将AgileConfig部署为Windows服务程序后启动失败。查看日志发现,程序将根目录定位到C:\Windows\System32下,读取appsettings.json配置文件自然失败。

前些天有 AgileConfig 的用户反映,如果把 AgileConfig 部署成 Windows 服务程序会启动失败。我看了一下日志,发现根目录被定位到了 C:\Windows\System32 下,那么读取 appsettings.json 配置文件自然就失败了。

var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory());

以上是我构造 ConfigurationBuilder 的代码。使用 Directory.GetCurrentDirectory() 获取程序根目录然后设置 SetBasePath 。以上代码在99%的情况是不会有问题的,那么为什么会在做为服务部署的时候会有问题呢?让我们往下看。

Directory.GetCurrentDirectory()

Directory.GetCurrentDirectory() 获取根目录是我们很常见的一个操作。先让我们对其进行一些简单的测试。

阅读全文

本文共计1913个文字,预计阅读时间需要8分钟。

如何避免.NET程序读取当前目录时遇到的问题?

近期有AgileConfig用户反馈,将AgileConfig部署为Windows服务程序后启动失败。查看日志发现,程序将根目录定位到C:\Windows\System32下,读取appsettings.json配置文件自然失败。

前些天有 AgileConfig 的用户反映,如果把 AgileConfig 部署成 Windows 服务程序会启动失败。我看了一下日志,发现根目录被定位到了 C:\Windows\System32 下,那么读取 appsettings.json 配置文件自然就失败了。

var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory());

以上是我构造 ConfigurationBuilder 的代码。使用 Directory.GetCurrentDirectory() 获取程序根目录然后设置 SetBasePath 。以上代码在99%的情况是不会有问题的,那么为什么会在做为服务部署的时候会有问题呢?让我们往下看。

Directory.GetCurrentDirectory()

Directory.GetCurrentDirectory() 获取根目录是我们很常见的一个操作。先让我们对其进行一些简单的测试。

阅读全文