Xamarin Studio 是否允许以比这更简单的方式调试库 (dll) 项目?

Does Xamarin Studio allow debugging a library (dll) project in an easier way than this?

我正在开发一个名为 child.dll 的 C# dll,它将由另一个名为 parent.exe 的第 3 方 C# 可执行程序加载。我无法访问 parent.exe.

的源代码

在 Visual Studio 上,当我想调试我的 dll 项目时,我只需将调试器附加到 parent.exe 即可。我找不到在 Xamarin Studio 上执行此操作的简单方法。

我现在正在做的是:

  1. 设置环境变量 MONODEVELOP_SDB_TEST=1 以启用 "Custom Command Mono Soft Debugger"
  2. 使用与第一步相同的终端启动 Xamarin Studio。
  3. 在 Xamarin Studio 选项 -> 调试器中取消选中 "Debug project code only; do not step into framework code"
  4. 在我的 child.dll 的相同解决方案中添加一个虚拟 exe 项目。这是因为 Xamarin Studio 不允许 "Run with" 作为库项目类型。通过这样做,我现在可以访问 Xamarin Studio 的 "Run with" 功能。
  5. 构建整个解决方案,将 child.dll 复制到 parent.exe 想要的位置和 运行 mono --debug --debugger-agent=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:55555 parent.exe parent-args。 (Parent.exe 将加载 child.dll
  6. 将虚拟项目设置为启动项目
  7. 运行 使用 > Custom Command Mono Soft Debugger 并连接到 127.0.0.1:55555

我正在寻找一种方法,让我公司的其他开发人员能够在 parent.exe 下创建和调试他们自己的 child.dll。我认为唯一不能接受的是第四步,这对他们来说没有任何意义。

有没有人遇到和我一样的问题?你是如何实现目标的?

更新信息

我把问题简单化了。在实际场景中,我没有自己管理 parent.exe。 parent.exe 已经 运行ning(使用这个确切的命令 mono --debug --debugger-agent=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:55555 parent.exe parent-args),它作为整个框架的一部分由另一个程序启动 (Process.Start)。

基本上,创建 child.dll 的开发人员的工作流程是创建一个 dll 来定义框架需要的一些 API。然后,将dll注入框架。

右键单击库项目,然后单击项目选项 -> 运行 -> 自定义命令。在组合中,select执行并输入parent.exe的路径。现在您将能够 "run" 库,调试器将在您放置在库代码中的断点处停止。