在Visual Studio调试会话期间查找当前目录?

Pet*_*sen 16 .net debugging process-explorer

如何找到在Visual Studio调试器下运行的.NET应用程序的当前目录?

更新1.要明确:我不想更改代码或获取程序本身的信息 - 我只想获取有关当前正在调试的应用程序的信息.

在调试.NET Windows Forms应用程序(混合VB.NET和C#)时,我不确定从哪个位置读取XML文件.我希望当前目录是应用程序的目录.但是,使用Process Explorer,进程的属性会导致:

D:\ Program Files(x86)\ Microsoft Visual Studio 9.0\Common7 \

(右键单击进程/属性/选项卡图像/当前目录).

将光标悬停在Process Explorer主视图中的进程上会显示不同的结果(请参见下面的屏幕截图):

d:\ dproj\DTASCall\DTASuperCharge\BIN \

什么是正确的?

独立启动应用程序会显示预期的当前目录,

d:\ dproj\DTASCall\DTASuperCharge\BIN \

在Process Explorer流程属性窗口中.


Process Explorer的带注释的屏幕截图:

替代文字http://www.pil.sdu.dk/1/until2039-12-31/PEdiscrepancy_2009-09-02.png

Phi*_*eck 27

在Visual Studio中,在调试选项卡中的项目设置下,您可以根据需要设置"工作目录".

要在代码中或在断点的即时窗口中确定当前工作目录,请尝试

System.IO.Directory.GetCurrentDirectory()
Run Code Online (Sandbox Code Playgroud)

  • 或者在即时窗口中,您可以随时执行"?System.IO.Directory.GetCurrentDirectory()" (4认同)
  • 立即窗口的替代方法:菜单Debug/Quickwatch/<在表达式字段中输入> /按Reevaluate.或者输入常规Watch窗口的Name列的最后一行,然后输入Return键. (2认同)

Ric*_*ard 4

在您的代码中,调用该函数

System.IO.Directory.GetCurrentDirectory()
Run Code Online (Sandbox Code Playgroud)

默认情况下,除非您更改了项目的“调试”属性,否则当前目录将作为项目的 bin\Debug 目录(.exe 从中运行)开始。