Visual studio 2010远程调试:启动外部程序:目录不存在

本文关键字:外部 启动 程序 不存在 调试 2010 studio 程调试 Visual | 更新日期: 2023-09-27 18:04:34

如果我执行"Attach To Process",一切都正常。

但是我需要在启动应用程序期间调试一个问题,所以我需要能够在远程exe中"启动项目"或"启动外部程序"。

当我这样做时,我得到"directory does not exist"。(假定,它要么在本地查找这个不存在的目录,要么缺少权限。)

细节:* .Net Framework 3.5;c# Windows窗体,带有按钮,当点击

Debug.WriteLine("Hello World!");
  • 两台Windows 7 Ultimate pc,用户名和密码相同,管理员。

本地PC:

    Visual Studio 2010 ProfessionalHello World项目打开并构建。在本地测试:开始调试/点击按钮/在VS输出窗格中看到"Hello World!"退出本地版本的app。
远程PC:

  • 安装了Visual"Microsoft Visual c++ 2010 SP1 Redistributable"(这样可以运行这个。net应用程序的调试版本);

  • 安装前提示"程序无法启动,因为MSVCR100.dll丢失,遇到断点")。
  • Visual Studio Remote Debugging Monitor running.

    • 显示"(日期/时间)Msvsmon启动了名为Steve@FRESHINSTALL的新服务器:等待新的连接"。
    • 当连接到进程时,显示"FreshInstall'Steve connected"
  • 从本地pc的项目位置(默认VS 2010项目),'bin'debug*复制到C:'Code'HelloWorld*

  • 代码文件夹以完全权限共享(以防万一…)

Attach to Process works fine:

  • 点击按钮=>"Hello World"-在本地PC的输出窗格,就像在本地运行一样。

现在,问题是。如何远程启动。exe,而不是附加到进程?

在Debug窗格中:

  • 尝试"Start project"

  • 或者,尝试"启动外部程序:" C:'Code'HelloWorld'HelloWorld.exe"——在远程PC上,这是。exe

  • 的路径
  • 工作目录:"C:'Code'HelloWorld" <—此目录仅存在于远程PC(故意-确保我们不在本地执行)

  • [checkmark]使用远程机器:FRESHINSTALL.

  • 尝试使用和不使用"Enable Visual Studio hosting process"

当执行"Start Debugging"时,所有的变量都显示"工作目录不存在:"C:'Code'HelloWorld".

嗯,当然不是:它是在远程PC上,而不是在本地。

然而,我看到的每一个地方都是这样做的。

我应该做什么不同的,或者什么可能是错的?


(显然这个简单的应用程序,我可以坚持附加到进程。但我有一个更复杂的多dll应用程序,这是在启动过程中出现问题。我需要在"真正的"应用程序启动时设置断点,而不是在它已经运行之后。

(我要调试的真实情况是在世界的另一边,网络连接很慢。这是对问题所在的局部模拟。在实际的远程PC上安装visual studio是不实际的,要把它变成本地调试的情况。我花了一天时间远程调试;当我让它在本地网络上工作后,我必须复制整个过程,对正在发生的事情的控制要少得多。

Visual studio 2010远程调试:启动外部程序:目录不存在

为了结束这个问题,表明它已经被解决了:

查看沃尔对我的问题的第一条评论,并点击他给出的链接,我在这里重复一下:

在其他计算机上远程上传和调试Visual Studio