【发布时间】:2018-10-29 14:33:46
【问题描述】:
我在 Visual Studio 2017 中创建了两个解决方案:
- 第一个带有控制台应用程序
Example1 - 第二个类库
ClassLibrary1
ClassLibrary1 只包含一个文件MyLib.cs:
namespace ClassLibrary1
{
public class MyLib
{
public string Foo()
{
return "Bla";
}
}
}
在第一个解决方案(带有 Example1 控制台应用程序的那个)中,我添加了 existing project -> ClassLibrary1。
我将ClassLibrary1配置为Startup项目,并设置Debug -> Start external program 如图:
所以现在您只需启动项目(在我的情况下为 ClassLibrary1)并且调试工作(我在返回“Bla”中设置断点;)。发生的情况是 Example1.exe 调用 ClassLibrary.MyLib 文件。
我是否正确理解了Debug -> Start external program 的用法或者还有其他用法?
【问题讨论】:
-
当您需要执行的程序不是您正在开发的程序时,您可以使用它。可能是您正在开发一个插件,或者它是用 Visual Studio 不支持的编程语言编写的,例如 Delphi 或类似的语言。
-
@LasseVågsætherKarlsen 例如,Delphi 调用您的 DLL,然后您可以在 Visual Studio 中调试您的 DLL。
-
@broadband 您也可以打开您的 dll 项目并启动其他应用程序,然后单击 Visual Studio
Debug\Attach to process并选择正在运行的应用程序并在您的代码中放置一个断点,它将中断当方法被调用时。 -
@broadband 没错,我们在工作中这样做,我们还开发了一个 Delphi 应用程序,以及 Delphi 应用程序通过托管 .NET 运行时加载的大量 .NET 代码。通过配置Visual Studio启动Delphi生成的.exe文件,我们可以正常设置断点,调试.NET代码。我们无法从 Visual Studio 调试到 Delphi 代码,但我们可以随时切换到 Delphi IDE 进行该部分。
标签: c# debugging visual-studio-debugging