将WPF项目作为WinForm解决方案中的进程进行调试。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将WPF项目作为WinForm解决方案中的进程进行调试。相关的知识,希望对你有一定的参考价值。

我有一个C#解决方案,里面有多个WinFrom项目,在这个解决方案中,我也有一个WPF项目,当我在MainProject里面把WinForm项目作为一个进程启动时,它运行得很完美,我可以顺利地调试它,但当我想在MainProject里面把WPF项目作为一个单独的进程启动时,我无法调试它。但是当我想在MainProject里面把WPF项目作为一个单独的进程来启动时,就无法调试了,我使用了子进程调试扩展来调试子进程,我的启动子进程的代码是.NET.NET.NET.NET.NET。

            Process.Start(new ProcessStartInfo()
            
                FileName = System.Reflection.Assembly.GetAssembly(typeof(UI.Export.DTO.Launcher)).Location,
                WorkingDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(UI.Export.DTO.Launcher)).Location),
                Arguments = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(launcher))),
            );

我还把WinForm和WPF项目都添加到了子进程调试设置中!

先谢谢了:)

答案

我想

  • 认购 Application.Startup
  • 的事件处理程序设置一个屏蔽。Application.Startup
  • 做附加的过程中,wpf应用程序被挂在blocker部分。

public partial class YourWpfApp : Application

    public YourWpfApp()
    
        Startup += YourWpfApp_Startup;
    

    private void YourWpfApp_Startup(object sender, StartupEventArgs e)
    
        System.Threading.Thread.Sleep(50000);//Attach to the process, while waiting here.
        Startup -= YourWpfApp_Startup;
    

以上是关于将WPF项目作为WinForm解决方案中的进程进行调试。的主要内容,如果未能解决你的问题,请参考以下文章

winform 可以用wpf窗体吗

C#WinForm项目怎么转变成WPF项目?

C#winform中调用wpf

vs winform项目如何改成4.0,创建时用的是4.5的,现在需要改成4.0的

WPF与WinForm

wpf winform进程间通信的方式