gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:12:48 26 4
gpt4 key购买 nike

我正在开发一个名为 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 选项 -> 调试器中取消选中“仅调试项目代码;不要进入框架代码”
  4. 在我的 child.dll 的相同解决方案中添加一个虚拟 exe 项目。这是因为 Xamarin Studio 不允许对库项目类型使用“运行方式”。通过这样做,我现在可以访问 Xamarin Studio 的“运行方式”功能。
  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。我认为唯一 Not Acceptable 步骤是第四步,这对他们来说没有任何意义。

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

更新信息

我把问题过度简化了。在真实场景中,我并没有自己管理parent.exe。 parent.exe 已经在运行(使用这个确切的命令 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 的开发人员的工作流程是创建一个定义框架需要的一些 API 的 dll。然后,将dll注入(inject)框架。

最佳答案

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

关于debugging - Xamarin Studio 是否允许以比这更简单的方式调试库 (dll) 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31069979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com