我有一个正在开发的ASP.NET Core项目,并且正在使用LiteDB作为数据库解决方案。为了实例化数据库,我需要提供一个URI,以便程序知道在哪里创建数据库。
通常,我会执行类似System.Environment.CurrentDirectory()
的操作来找到我所在的当前目录并对其进行修改,但是该命令的结果却是C:\program files\IIS Express
或类似的内容。基本上,当前目录指向IIS Express的位置。
相反,我想获取我的ASP.NET项目的根目录,该目录包含我的controllers文件夹,appsettings.json,bin和obj文件夹。
我需要使用什么命令来获取表示该位置的字符串?出于明显的原因,我不想使用硬编码的字符串。
答案 0 :(得分:0)
如果您无权使用DI,则可以尝试:
Assembly.GetExecutingAssembly().Location
如果您可以访问DI,请尝试以下操作:
注入IHostingEnvironment
并致电environment.ContentRootPath
答案 1 :(得分:0)
使用专用位置(例如网络共享)而不是包含可执行代码的文件夹可能会更好。将用户数据混合到已部署的代码中会带来很多麻烦:
当然,所有这些都假设生产环境的配置与开发人员的本地计算机不同。