C# 环境变量作为app.config中的部分路径

C# 环境变量作为app.config中的部分路径,c#,environment-variables,app-config,C#,Environment Variables,App Config,我有一个环境变量,它指向开发代码所在的文件夹。在我的机器上是C:\SOME\u NAME\CODE。此环境变量在代码中引用,因为使用相同代码的其他计算机对相同的环境变量具有不同的路径。我无法确定目录或驱动器名称,甚至无法确定级别的数量。我试图在app.config中使用相对路径,但无法使其工作 <setting name="manifestpath" serializeAs="String"> <value>$(CODE_BASE)\PROJECT\manifest

我有一个环境变量,它指向开发代码所在的文件夹。在我的机器上是C:\SOME\u NAME\CODE。此环境变量在代码中引用,因为使用相同代码的其他计算机对相同的环境变量具有不同的路径。我无法确定目录或驱动器名称,甚至无法确定级别的数量。我试图在app.config中使用相对路径,但无法使其工作

<setting name="manifestpath" serializeAs="String">
   <value>$(CODE_BASE)\PROJECT\manifest\manifest.xml</value>
</setting>

$(代码库)\PROJECT\manifest\manifest.xml
当我运行它时,我得到一个错误
“找不到路径C:\SOME\u NAME\code\PROJECT\output\x64\Debug\$(code\u BASE)\PROJECT\manifest\manifest.xml的一部分。”

我知道这里有人问了一个确切的问题: .

不幸的是,我无法找到一个有效的答案,我尝试使用%(但我的env var名称中没有%,我无法更改它,因为更改将影响许多其他项目和人员)。帮忙?谢谢。

我想你看错了另一个问题的答案。您的环境变量的名称中永远不会有%。将变量名用%括起来,表示它是一个环境变量。因此,如果您的变量称为CODE_BASE,那么以下操作应该有效:

    <value>%CODE_BASE%\PROJECT\manifest\manifest.xml</value>
%code\u BASE%\PROJECT\manifest\manifest.xml

当我这样做时,得到的错误是“找不到路径C:\SOME\u NAME\code\PROJECT\output\x64\Debug\%code\u BASE%\PROJECT\manifest\manifest.xml的一部分”。这就是为什么我认为我误读了它。。。或者别的什么。。。因为它根本不起作用,这很好。现在您只需在[(
Environment.ExpandEnvironmentVariables
)中运行这个字符串,就可以设置了。