Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging Xamarin Studio是否允许以比这更简单的方式调试库(dll)项目?_Debugging_Xamarin_Monodevelop_Xamarin Studio_Soft Debugger - Fatal编程技术网

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

Debugging Xamarin Studio是否允许以比这更简单的方式调试库(dll)项目?,debugging,xamarin,monodevelop,xamarin-studio,soft-debugger,Debugging,Xamarin,Monodevelop,Xamarin Studio,Soft Debugger,我正在开发一个名为child.dll的C#dll,它将由另一个名为parent.exe的第三方C#可执行程序加载。我无权访问parent.exe的源代码 在VisualStudio上,当我想调试dll项目时,我只需将调试器附加到父.exe上即可。我在Xamarin Studio上找不到一个简单的方法来实现这一点 我现在正在做的是: 设置env varMONODEVELOP\u SDB\u TEST=1以启用“自定义命令Mono软调试器” 使用与第一步相同的终端启动Xamarin Studio 在

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

在VisualStudio上,当我想调试dll项目时,我只需将调试器附加到父.exe上即可。我在Xamarin Studio上找不到一个简单的方法来实现这一点

我现在正在做的是:

  • 设置env var
    MONODEVELOP\u SDB\u TEST=1
    以启用“自定义命令Mono软调试器”
  • 使用与第一步相同的终端启动Xamarin Studio
  • 在Xamarin Studio选项->调试器中取消选中“仅调试项目代码;不进入框架代码”
  • 在my
    child.dll的相同解决方案中添加一个伪exe项目。这是因为Xamarin Studio不允许对库项目类型使用“Run with”。通过这样做,我现在可以访问Xamarin Studio的“运行方式”功能
  • 构建整个解决方案,将
    child.dll
    复制到
    parent.exe
    所需的位置,然后运行
    mono--debug--debugger agent=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5555555 parent.exe parent args
    。(
    Parent.exe
    将加载
    child.dll
  • 将虚拟项目设置为启动项目
  • 使用>自定义命令Mono Soft Debugger运行,并连接到127.0.0.1:55555
  • 我正在寻找一种方法,让我公司的其他开发人员能够在
    parent.exe
    下创建和调试自己的
    child.dll
    。我认为唯一不可接受的步骤是第四步,这对他们来说毫无意义

    有人和我面临同样的问题吗?你是如何实现你的目标的

    更新信息

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


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

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

    Ah。。我把问题过分简化了。我不能这样做,因为实际上我自己没有运行parent.exe,parent.exe是由另一个程序作为整个框架的一部分启动的(Process.Start)。基本上,创建child.dll的开发人员的工作流程是创建定义框架所需的某些API的dll。然后,将dll注入框架。我会相应地更新这个问题。我刚刚发现,我甚至不必输入parent.exe路径,我可以把任何东西都放在Xamarin Studio上!它不会运行我“使用>自定义命令Mono Soft Debugger”运行时放在那里的内容。