Embedding Issue with 1.6.0-rc1 and UseShellExecute = false

I’m attempting to embedded Julia in a c# application. This application is launched from another c# app using the .NET System.Diagnostics.Process class which can be used to start another exe process. I have set the RedirectStandardOutput = true and UseShellExecute = false in order to capture the output stream of the exe/Julia. I have determined that Julia cannot start (i.e. jl_init_with_image__threading() fails) when UseShellExecute=false, Previously with v1.5.3 this worked. So I’m wondering if someone knows what might have changed in v1.6.0 that is related to the shell that might cause this failure. I’m on a Windows 10 machine. And I’m not 100% sure I know what a “shell” is exactly, but it’s likely related to how a Windows process is hosted I’m assuming.

In quick summary…

jl_init_with_image__threading() works with:

  • v1.5.3
    UseShellExecute = false

  • v1.6.0
    UseShellExecute = true

but fails with…

  • v1.6.0
    UseShellExecute = false

Correction: the issue is not the Shell, it’s with the StartInfo.RedirectStandardOutput = true

Therefore, v1.6.0 seems to crash at jl_init_with_image__threading() because something with the output stream is changed. Again, this worked with v1.5.3, so I’m curious if anyone know what’s changed related to the output stream?