影响相对文件路径的环境PATH变量

时间:2011-09-19 13:46:37

标签: c# .net visual-studio

我有这个控制台应用程序。现在我已将环境变量PATH添加到其设置中,以便可以通过控制台从任何位置执行。奇怪的是,相同的应用程序在此更改后正在破坏。

安装目录包含BIN和CONFIG文件夹。 Exe放在BIN文件夹中。

我有这行代码,

WriteToFile(@"..\Config\Settings.xml")

用于在INSTALLATION DIRECTORY内的Config文件夹内写入Settings.xml文件的路径。但是,现在它尝试在EXECUTION PATH中写入Config文件夹中的settings.xml。

因此,如果我从控制台以c:/users/guest/app.exe执行我的应用程序,它将尝试解释相对于此位置的路径而不是相对于应用程序的安装目录。

任何帮助,建议?

3 个答案:

答案 0 :(得分:0)

获取执行程序集的路径,然后将文件夹和文件名添加到其中:

string pathOfExecutingAssembly = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string settingsPath = pathOfExecutingAssembly + "\\..\\Config\\Settings.xml"

答案 1 :(得分:0)

为什么不尝试获取执行应用程序的路径并将其附加到要保存的路径之前

答案 2 :(得分:0)

从\开始的路径:从当前驱动器上的根目录开始。从任何C子目录执行的\ Config \ Settings.xml都给出:C:\ Config \ Settings.xml。

顺便说一下,你发布了确切的代码吗?它应该是WriteToFile(@“\ Config \ Settings.xml”)或WriteToFile(“\ Config \ Settings.xml”)

在任何情况下,您都需要决定是使用绝对路径搜索配置文件,还是相对于当前目录/安装目录/可执行目录搜索路径。应相应地更改代码,安装包和执行命令。