C# 如何在App.Config中设置相对路径?

C# 如何在App.Config中设置相对路径?,c#,.net,wpf,app-config,appsettings,C#,.net,Wpf,App Config,Appsettings,我正在使用Visual Studio 2017制作WPF C#ans 设置appSettings的文件路径。 我想在App.Config文件中定义一个相对路径。如果我尝试使用绝对路径,它会起作用 这项工作: <appSettings file="C:\Users\jordan\AppData\Roaming\Test\appfile.config"> <appSettings file="${AppData}\Roaming\Test\appfile.config">

我正在使用Visual Studio 2017制作WPF C#ans

设置appSettings的文件路径。 我想在App.Config文件中定义一个相对路径。如果我尝试使用绝对路径,它会起作用

这项工作:

<appSettings file="C:\Users\jordan\AppData\Roaming\Test\appfile.config">
<appSettings file="${AppData}\Roaming\Test\appfile.config">

<appSettings file="~\AppData\Roaming\Test\appfile.config">

<appSettings file="~/AppData/Roaming/Test/appfile.config">

etc...

但如果我尝试使用相对路径,它将不起作用

这不起作用:

<appSettings file="C:\Users\jordan\AppData\Roaming\Test\appfile.config">
<appSettings file="${AppData}\Roaming\Test\appfile.config">

<appSettings file="~\AppData\Roaming\Test\appfile.config">

<appSettings file="~/AppData/Roaming/Test/appfile.config">

etc...
你有没有办法在这里设置一个相对路径?或者我为什么不能这么做


谢谢

当前漫游用户的应用程序特定文件夹由枚举中的一个条目定义,它是ApplicationData条目

您可以使用传递枚举项来检索与此枚举关联的路径

 string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
因此,在您的配置文件中,您可以简单地存储最后一部分Test\appfile.config并使用此代码

 string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
 string configLocation = Configuration.AppSettings["file"].ToString();
 string file = Path.Combine(appData, configLocation);

当前漫游用户的应用程序特定文件夹由枚举中的一个条目定义,它是ApplicationData条目

您可以使用传递枚举项来检索与此枚举关联的路径

 string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
因此,在您的配置文件中,您可以简单地存储最后一部分Test\appfile.config并使用此代码

 string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
 string configLocation = Configuration.AppSettings["file"].ToString();
 string file = Path.Combine(appData, configLocation);

谢谢你的回答,但这不是我真正想要的。我的目标是在appSettings的file属性中设置相对路径。您的answser将在App.config中存储路径。AppSettings允许我使用一个外部配置文件,我需要的是设置这个外部文件的路径。啊!是的,那么我误解了这个问题。但是你有没有试着在你的道路前面不使用任何东西?它应该相对于程序集的当前位置,通常在VS中调试时,这是BIN\DEBUG文件夹,换句话说,这是部署场景中的exe存储位置。在Visual Studio中运行应用程序时,我会尝试在BIN\DEBUG named Test下创建一个子文件夹,并将文件appfile.config放在其中,然后更改我尝试的是,它在BIN/DEBUG中工作,但我必须使用外部文件夹。如果使用exe文件夹,则无法为每个用户/计算机设置单独的配置。这就是为什么我必须使用一个外部文件夹作为AppData的原因。这个问题似乎已经由带有user config选项的newapplicationsettings部分解决了。这将为每个用户创建单独的设置。这里有一些关于这些设置的讨论,谢谢你的回答,但这并不是我真正想要的。我的目标是在appSettings的file属性中设置相对路径。您的answser将在App.config中存储路径。AppSettings允许我使用一个外部配置文件,我需要的是设置这个外部文件的路径。啊!是的,那么我误解了这个问题。但是你有没有试着在你的道路前面不使用任何东西?它应该相对于程序集的当前位置,通常在VS中调试时,这是BIN\DEBUG文件夹,换句话说,这是部署场景中的exe存储位置。在Visual Studio中运行应用程序时,我会尝试在BIN\DEBUG named Test下创建一个子文件夹,并将文件appfile.config放在其中,然后更改我尝试的是,它在BIN/DEBUG中工作,但我必须使用外部文件夹。如果使用exe文件夹,则无法为每个用户/计算机设置单独的配置。这就是为什么我必须使用一个外部文件夹作为AppData的原因。这个问题似乎已经由带有user config选项的newapplicationsettings部分解决了。这将为每个用户创建单独的设置。这里有一些关于这些设置的讨论