有没有办法为我的 WCF 服务设置 app.config,以便它输出到 LocalApplicationData folder无需硬编码任何东西?
%LOCALAPPDATA%
在 XP 中不起作用,我需要支持 XP
我发现 shell:Local AppData
可以工作,但我不确定如何将其放入 app.config
我能找到的下一个最接近的是%APPDATA%
,但我不相信这与 LocalApplicationData 不同
最坏的情况,我可以(但不想)使用代码来执行此操作(直接使用 SpecialFolders),但我不确定如何设置它,同时保持其余设置可配置?
最佳答案
您可以从环境对象中获取它。
string path;
path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
根据评论进行编辑:
现在我明白了。您可以创建自己的环境变量以用作配置中路径的一部分。
CMD:
set mylocalapplicationdata="somewhere"
或 C#:
string name = "mylocalapplicationdata";
string value = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
Environment.SetEnvironmentVariable(name, value);
此后,您可以像其他系统变量一样使用%mylocalapplicationdata%
。
您可以为一个 session (进程)、用户或机器设置变量(对于需要管理员权限的机器)。
更多信息(MSDN): http://msdn.microsoft.com/en-us/library/z46c489x.aspx
或者您可以使用这样的字符串:
%USERPROFILE%\Local Settings\Application Data
但这仅适用于 Windows XP。
关于c# - 如何将配置输出设置到特殊文件夹(LocalApplicationData)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203749/