序言 - 如果我将Windows环境变量添加到应用程序的安装目录路径中,我不需要使用CD安装目录来执行它。PATH环境变量和相对文件路径
问题 - 我的应用程序中的相对文件路径是否根据控制台中的当前执行路径或根据安装目录进行解释。奇怪的是,在我的应用程序中,路径被解释为与当前执行路径相关,从而导致异常(文件未找到等)。
请帮我一把。
序言 - 如果我将Windows环境变量添加到应用程序的安装目录路径中,我不需要使用CD安装目录来执行它。PATH环境变量和相对文件路径
问题 - 我的应用程序中的相对文件路径是否根据控制台中的当前执行路径或根据安装目录进行解释。奇怪的是,在我的应用程序中,路径被解释为与当前执行路径相关,从而导致异常(文件未找到等)。
请帮我一把。
相对路径将被解释为相对于Environment.CurrentDirectory
。
它将默认为进程启动的目录,但可以更改。
您遇到的行为(相对路径在当前工作目录的上下文中进行评估)是由设计决定的。
如果你要始终把旁边的当前执行的程序集的文件,这段代码可能会派上用场:
public static string GetPathRelativeToExecutingAssemblyLocation(string aRelativePath)
{
return Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
aRelativePath);
}