App.config设置,环境变量为部分路径

时间:2011-03-14 18:59:43

标签: c# xml windows app-config environment-variables

我是修补app.config和xml的新手,我现在正在做一些我没写的代码重构。
目前我们有一个代码如下:

<setting name="FirstSetting" serializeAs="String">
  <value>Data Source=C:\Documents and Settings\All Users\ApplicationData\Company ...;Persist Security Info=False</value>

我想做的是让它指向像${PROGRAMDATA}\Company\...

这样的东西

如何实现这一点,请记住,PROGRAMDATA并不总是指向C:\ProgramData

5 个答案:

答案 0 :(得分:2)

我真的不想根据其他响应在代码中更改它,因为这样就无法将其作为配置设置。

事实证明,%ProgramData%\Company...是在此上下文中使用环境变量的正确方法。

答案 1 :(得分:2)

使用

Environment.ExpandEnvironmentVariables(stringFromConfig);

它使用精确值替换字符串中的所有现有环境变量,如%ProgramData%。

答案 2 :(得分:1)

是的,在你的环境中写一下就好。然后在运行时替换$ {PROGRAMDATA}:

        var setting = Properties.Settings.Default.FirstSetting;
        setting = setting.Replace("${PROGRAMDATA)", 
            Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));

答案 3 :(得分:0)

考虑到PROGRAMDATA是一个环境变量,您可以使用C#

进行访问
String EnviromentPath = System.Environment.GetEnvironmentVariable("PROGRAMDATA", EnvironmentVariableTarget.Machine);

答案 4 :(得分:0)

你可以使用

var programDataValue = Environment.GetEnvironmentVariable("PROGRAMDATA");

如果它来自环境变量。