如何避免.NET程序读取当前目录时遇到的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1913个文字,预计阅读时间需要8分钟。
近期有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() 获取根目录是我们很常见的一个操作。先让我们对其进行一些简单的测试。
本文共计1913个文字,预计阅读时间需要8分钟。
近期有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() 获取根目录是我们很常见的一个操作。先让我们对其进行一些简单的测试。

