如何设置配置输出到特殊文件夹(LocalApplicationData)

本文关键字:文件夹 LocalApplicationData 配置 何设置 设置 输出 | 更新日期: 2023-09-27 17:50:53

是否有办法为我的WCF服务设置我的app.config,以便它输出到LocalApplicationData文件夹,而无需硬编码任何东西?

%LOCALAPPDATA%不能在XP中工作,我需要支持XP

我发现shell:Local AppData工作,但我不确定如何把它放在一个app.config

下一个最接近我能找到的是%APPDATA%,但我不相信这是不一样的LocalApplicationData

最坏的情况下,我可以(但宁愿不)使用代码来做到这一点(直接使用SpecialFolders),但我不确定如何设置这个,同时保持其余的设置可配置?

如何设置配置输出到特殊文件夹(LocalApplicationData)

可以从Environment对象中获取。

string path;
path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

根据注释编辑:

现在我明白了。您可以创建自己的环境变量,作为配置中path的一部分使用。

CMD:

set mylocalapplicationdata="somewhere"

或c#:

string name = "mylocalapplicationdata";
string value = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
Environment.SetEnvironmentVariable(name, value);
在此之后,您可以像使用其他系统变量一样使用%mylocalapplicationdata%

您可以为一个会话(进程),用户或机器(对于机器,您需要管理员权限)设置变量。

更多信息(MSDN):http://msdn.microsoft.com/en-us/library/z46c489x.aspx

或者你可以像这样使用字符串:

%USERPROFILE%'Local Settings'Application Data

我不认为有一种方法可以只使用内置环境变量来获取您想要的信息。从Windows XP到Windows Vista/7的信息不一致,所以我认为你最好的选择是在安装期间更新你的配置文件,在那里你可以确定操作系统并访问其他Windows api。