-
Notifications
You must be signed in to change notification settings - Fork 419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
disable VisualStudioInstanceProvider on mono #1001
Conversation
Actually it looks like it isn't implemented in mono: |
Are you running OmniSharp on Mono on Windows? (and if so, why?) |
Yeah, unfortunately. There's a bug somewhere that causes net46 processes to hang when started as a child process from cygwin emacs (nothing ever shows up on stdout). This doesn't happen with earlier runtimes (e.g. 3.5) or mono. |
Got it. That kind of stinks. It'd be great if we could track down that bug. Do you know if it happens with the Windows Linux Subsystem? |
@@ -17,7 +17,7 @@ public VisualStudioInstanceProvider(ILoggerFactory loggerFactory) | |||
|
|||
public override ImmutableArray<MSBuildInstance> GetInstances() | |||
{ | |||
if (!PlatformHelper.IsWindows) | |||
if (!PlatformHelper.IsWindows || PlatformHelper.IsMono) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you remove the first condition?
if (PlatformHelper.IsMono)
{
return NoInstances;
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, but I figured that was also there for non-windows non-mono platforms e.g. netcore?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OmniSharp does not run on .NET Core. It requires Mono or Desktop CLR. So, that change should be fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool. Done.
I don't think it's possible to fork/exec a net46 process from WSL. I'm sure running emacs on WSL w/ mono omnisharp would be fine, but I prefer the GUI/filesystem integration in cygwin. I do plan on investigating the bug, but I have a feeling it's something to do with file handle/tty stuff in .net. I'll at least try to make a simple repro. |
a070398
to
c147de9
Compare
Since #998 I've been getting:
I've worked around this by disabling the VS instance provider on mono, but I'm still not exactly sure why it's failing. I've tried x64 and x86 mono, and according to http://www.mono-project.com/docs/advanced/com-interop/, COM interop is supposed to work.