尝试获取配置文件的相对路径,该文件位于核心项目中的类旁边,并且还尝试避免硬编码的相对路径(即" ../../../ seleniumconfig.json&#34 ;)
这是我的项目结构,
Program.cs (在Awesome.OtherProject1中)
using (var scope = Container.BeginLifetimeScope())
{
var selenium = scope.Resolve<ZSelenium>();
...
}
ZSelenium.cs
var rootDir = new DirectoryInfo(Environment.CurrentDirectory);
// "/users/myuser/Documents/MyProject/AwesomeProject.OtherProject"
我可以从rootDir
变量构建我的相对路径,但是我会想要避免使用很多硬编码的../../..
。此外,如果我从另一个项目调用ZSelenium.cs
,相对路径可能会更改。
有谁知道在核心项目中获得ZSelenium.cs
路径的更好方法?
非常感谢任何帮助!!
答案 0 :(得分:1)
配置文件永远不属于Programm文件夹。无论如何,我们在Windows 98中做过这样的事情,但当时它还是皱眉头。由于XP不再可靠地编写这样的配置文件。 Programm文件夹受到保护。大多数用户只能读取它们,而不是为了安全起见而写入它们。这包括该用户启动的任何程序。
如果您想存储用户或系统特定的设置,那就是special folders的用途。他们的一个定义目的是,无论用户运行您的程序,都应该读取(并可能写入)他自己和所有共享文件夹。
您可以添加&#34;默认配置&#34;到Programm目录以用作新用户的模式。但即便如此,也存在现有结构(默认用户文件夹),因此您可以将模板放置到安装程序中。