不是从自己的目录运行程序崩溃

RRM*_*RRM 3 c# xml path

一个基本问题:

我有一个C#Windows应用程序,通过键入从其自己的目录执行时运行正常

program1.exe
Run Code Online (Sandbox Code Playgroud)

但是当我从另一个目录执行它时给出了完整的路径

d:/progs/myprog/program1.exe
Run Code Online (Sandbox Code Playgroud)

它崩溃了.我真的需要这样做:)

我想这与程序中读取一些文件有关,这些文件位于同一目录中.我怀疑的是:

using (XmlReader OdczytywaczXML = XmlReader.Create(@"config.xml"))
Run Code Online (Sandbox Code Playgroud)

这可能是问题吗?我不想提供文件的完整路径,因为我希望我的程序只需复制文件即可在任何地方工作.

哦,我不知道如何在调试时模拟这种情况(从另一个目录运行) - 是否可能?

max*_*max 5

config.xml在这种情况下,您应该检测您的程序位置并构建完整路径,例如:

var filePath = Path.Combine(
    Path.GetDirectoryName(Assembly.GetEntryAssembly().Location),
    @"config.xml");
Run Code Online (Sandbox Code Playgroud)

要模拟条件,请转到项目属性,页面"调试"并设置Working Directory.