gpt4 book ai didi

c# - dotnet core 2.0 - 以编程方式将 VS2017 调试器附加到进程

转载 作者:行者123 更新时间:2023-11-30 16:41:31 24 4
gpt4 key购买 nike

在我的 dotnet core 2.0 应用程序中,我在不同的进程(使用一些不同的参数)中的某个点重新启动相同的应用程序。我希望能够以编程方式将当前的 Visual Studio (2017) 调试器附加到新进程。

Here is an example of how it is done in full framework但对于初学者来说,Marshal.GetActiveObject 方法似乎不存在。

在 dotnet core 2.0 中是否有不同的方法来实现这一点?还是根本不可能?

最佳答案

虽然这种情况正在发生变化,但 .Net Core 被设想为尽可能跨平台,并且最初遗漏了许多“仅限 Windows”的方法。也就是说,您仍然可以使用 P/Invoke 调用底层 Windows 函数:

[DllImport("oleaut32.dll", PreserveSig = false)]
static extern void GetActiveObject(ref Guid rclsid, IntPtr pvReserved,
[MarshalAs(UnmanagedType.IUnknown)] out object ppunk);

[DllImport("ole32.dll")]
static extern int CLSIDFromProgID(
[MarshalAs(UnmanagedType.LPWStr)] string lpszProgID, out Guid pclsid);
....

// Replace XX with the correct version
CLSIDFromProgID($"VisualStudio.DTE.XX.0", out var classId);
GetActiveObject(ref classId, default, out dte);

关于c# - dotnet core 2.0 - 以编程方式将 VS2017 调试器附加到进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48639797/

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