项目中想要读取一些配置文件,路径应该怎么写啊,绝对路径不行,写相对路径的话,文件必须放到那个 bin 文件夹下深深的好几层。。。
怎么写这个路径才能让开发的时候和打包成可执行文件运行的时候就可以通用呢?
1
opengps 2020-12-13 22:26:34 +08:00
默认读取 debug 或者 release 最合适,因为这里就是发布后根目录,对于 appconfig 或者 webconfig 之外的,建议手动改文件属性为“始终复制”
之前整理过一份 web 和 form 通用的,看我博客第三部分: https://www.opengps.cn/Blog/View.aspx?id=415&from=v2ex |
2
ysc3839 2020-12-13 23:18:28 +08:00 via Android
我自己开发的项目,配置文件是放在 exe 所在目录的,忽略当前目录。
|
3
beyondex 2020-12-13 23:21:09 +08:00
通过 AppDomain.CurrentDomain.BaseDirectory 获取程序的运行路径,或者
Web 程序通过 IHostEnvironument.WebContentRoot 获取。。 |
4
Jirajine 2020-12-14 00:16:35 +08:00 via Android
怎么不行了,绝对路径和相对路径都行。
绝对路径可以直接 /etc/(app name)/xx.conf,$HOME/.xx.conf,或者 xdg 那一套。 相对路径的话,可以取运行程序时的当前路径(不是 executable 所在的路径),并且允许用户指定。 |
5
zxCoder OP |
7
forgottencoast 2020-12-16 11:37:20 +08:00
@zxCoder 就放在项目根目录,设置成始终拷贝就可以了,编译的时候自然就会拷贝到 bin/Debug 目录下的。
你这属于基本概念都不清晰,只要是使用 VS 创建的项目自动就是这样设置的,以前是 app.config 或者 web.config,现在 dotnet core 是 appsettings.json,不需要多做什么额外的工作,它就可以正常运行。 |