首页 新闻 会员 周边

获取应用程序路径的两种方式, 哪一种更好呢

0
[已解决问题] 解决于 2019-06-21 11:09

无意中发现的两种方式,其实他们还是一有点区别的,就是结尾处有无。。。。就是不知道哪一种方式更好,比如跨平台发布有无影响之类的,毕竟是.netcore项目。
求大神解答

刘下来的主页 刘下来 | 小虾三级 | 园豆:919
提问于:2019-06-19 09:37
< >
分享
最佳答案
0

ASP.NET Core 中:

(1) DLL 程序集路径:AppDomain.CurrentDomain.BaseDirectory

(2) Web应用程序根目录:IHostingEnvironment.ContentRootPath

(3) wwwroot 所在路径:IHostingEnvironment.WebRootPath
开发环境 (1) 和 (2) 不同;
发布后的环境 (1) 和 (2) 相同。
至于跨平台,以上Windows 和 Linux下都可以正常工作。
另外,你还可以使用 Path.DirectorySeparatorChar 来获取当前os的路径分隔符。

奖励园豆:5
大豆男生 | 小虾三级 |园豆:608 | 2019-06-19 10:42

能说具体一点吗?或者相关资料之类的。。。。

刘下来 | 园豆:919 (小虾三级) | 2019-06-20 09:17

@iiiiiim:
AppDomain.CurrentDomain.BaseDirectory 可直接使用:
string path1 = System.AppDomain.CurrentDomain.BaseDirectory;

IHostingEnvironment 一般是依赖注入方式使用:
比如,在asp.net core web項目中的 Startup.cs 文件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
string webRootPath = env.WebRootPath;
string contentRootPath = env.ContentRootPath;
}

大豆男生 | 园豆:608 (小虾三级) | 2019-06-20 09:39
其他回答(1)
0

还有第三种选择:Directory.GetCurrentDirectory()

dudu | 园豆:31007 (高人七级) | 2019-06-19 10:22

......能说下优劣吗

支持(0) 反对(0) 刘下来 | 园豆:919 (小虾三级) | 2019-06-19 10:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册