是否可以在App.config文件中的appSettings中引用主目录?

akn*_*ds1 6 .net c# app-config

我在Visual Studio(2010)中有这个C#项目,我想<appSettings>在项目的App.config文件的部分中引用我的主目录中的文件.也就是说,我使用这种语法:

<appSettings>
    <add key="Database" value="sqlite:///C:\Users\arvek\test.db3" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

是否可以通过变量引用我的主目录(C:\ Users\arvek)而不是直接硬编码?F.ex.:value ="sqlite:/// $ HOME\test.db3".

Mic*_*eld 9

ConfigurationManager不会自动扩展应用程序设置中的任何内容,因为它们只是自由格式的字符串,但您可以手动执行此操作.使用ExpandEnvironmentVariables方法Environment,它将%VARIABLENAME%根据当前环境扩展表单的变量.所以:

<appSettings>
    <add key="Database" value="sqlite:///%APPDATA%\database\test.db3" />
</appSettings>


string path = Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["Database"]);
Run Code Online (Sandbox Code Playgroud)

"home"目录的根路径位于%USERPROFILE%变量中,尽管%APPDATA%是放置您正在讨论的事物的传统位置.系统范围的数据也有%ALLUSERSPROFILE%(尽管在Windows 7中实际指向特殊的系统范围数据文件夹,而不是"公共"配置文件.)