-
Notifications
You must be signed in to change notification settings - Fork 416
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
Question: omnisharp-roslyn supports dotnet 2.0 preview in the latest release ? #919
Comments
Yes and no. It's not clear which builds it will work with. The mono build requires a mono fix in order to process .NET Core 2.0 preview projects. (We're using a special mono build with omnisharp-vscode for that). |
So if I want to try mono roslyn binary I need to install mono and download roslyn mono binary? |
In theory, yes. In practice, the fix hasn't made it's way into the latest Mono builds yet. |
Ok. In the theory, should it work on Linux based os or it's should work only for Windows OS? |
Windows builds work just fine. |
Thanks :) |
FWIW, it looks like that Mono fix I was referring to is in the latest Mono beta build: 5.2.0.196. However, it sounds like you were actually looking for Windows? |
No, I am trying to use your binaries for Linux Fedora and Centos with installed dotnet 2.0 preview and with project generated with help dotnet 2 preview. And even more : all of this I launch in the docker container ... |
If you're already trying it, should I assume it doesn't work? Are you getting some sort of error? |
@DustinCampbell in the future releases you will be support dotnet-core binaries, or only net46 and mono binary? |
In future release, OmniSharp will only have five releases:
Mono builds will include a local Mono runtime and framework so you don't need to have Mono installed to make it work. The releases will still support processing .NET Core, .NET Framework, Xamarin, Unity, etc. projects. |
Can I get somehow mono local binary for using 1.22 binaries without installation mono? Or local mono is not ready yet or incompatible with current binaries? |
You could try installing the latest C# for VS Code beta into VS Code. Then, open a C# project in VS Code, let it download the Mono runtime/framework and OmniSharp. Finally, grab the binaries from the extension folder, which should be something like Note that's not supported, but it should work until we've got proper OmniSharp builds with the Mono binaries included. |
Hi. Sorry for jumping in late. I am trying to clarify my understanding of how omnisharp supports .NET Core. Is it fair to say that Omnisharp-roslyn can work with just plain .NET Core? No mono required? I understand there may be reduced features (like it wont work against mono projects), but mono is not a hard dep if I just want to use omnisharp-roslyn against .NET Core? Could you clarify the phrase "...The mono build requires a mono fix ..."? Is there a mono build of omnisharp and a non-mono build? Will the non-mono build just work on .NET Core? Any pointers to that build? |
Let me clarify as there are two aspects to this problem:
Here are the details about the second point: Yes, we'll be moving OmniSharp to run only on Mono. Sadly, due to the way that .NET Core handles assembly resolution, and the fact that MSBuild can run arbitrary code (in the form of Tasks) which can have additional dependencies, OmniSharp can't run on .NET Core and still handle all .NET Core projects. If we wanted to run on .NET Core, we'd need to (at worst) have a different build of OmniSharp matched to a particular .NET Core SDK. Does that make sense? So, Mono will be a hard dependency, but OmniSharp will ship a local version of Mono that it runs on. So, you won't need to install Mono on the machine. This is how C# for VS Code works today. |
First, thank you for explaining this! Now, speaking with my Linux distro package maintainer hat on, please consider that this will make it harder for us to package and use omnisharp-roslyn.
Unfortunately, dependencies and bundling local versions of packages are some of the bigger issues for Linux distributions. Many enterprise distributions do not ship mono but some have begun looking at .NET Core. Most distributions also want their software to be built from upstream source and prohibit local copies of binaries (so bundling mono would be a concern).
What would it take to make .NET Core suitable for use by Omnisharp? |
The intent from our discussions at Summit were to ensure that the linux/osx packages listed under releases would include this built in mono, with a bootstrapping script ( And dustin can correct me if I'm wrong, that the embedded mono will run on most environments self contained without any external dependencies. (I could be wrong here however) |
Why is that? We are not adding a dependency on Mono to OmniSharp. We are including the Mono runtime and a set of framework binaries with OmniSharp, similar to how a standalone .NET Core app would work today.
AFAICT, it is not possible without matching OmniSharp to the specific .NET Core SDK as the project you're trying to process. |
That's correct. |
The way most linux distributions package software for inclusion is by unbundling all embedded binaries/libraries from a piece of software. Lets say you have a native application that displays pngs and uses
So, Linux distributions strongly prefer that any software they include (such as And yes, this problem will affect standalone .NET Core applications too. I fully expect Linux distributions to come up with guidelines saying .NET Core applications must be framework-dependent and use libraries on the system. For more background, see: |
Ah. I see where you're coming from now. Sorry that I didn't catch on sooner. FWIW, I don't think we have any aspirations of distributing OmniSharp in such a manner. As always, OmniSharp is simply distributed as a tarball/zip. I should also mention that OmniSharp can be run on a non-local Mono and we will likely provide a Mono package that isn't bundled with our Mono bits for any and all who wish to distribute it in such a fashion. |
Dustin/others. I'm using the latest Mono beta on Linux with v1.22 but am still seeing issues. Is this expected at this time and if so, is there any work-around to make Omnisharp (specifically looking to make it work with Emacs) work with core 2.0 preview2? Thanks,
|
Update your OmniSharp script to pass |
@sebbov: Does that work for you now? |
@DustinCampbell yes it seems to, thanks! I build from head of master and get:
The |
Glad it works! |
With #915 now merged, I think this can be closed. |
Question: omnisharp-roslyn supports dotnet 2.0 preview in the latest release? I mean it will work if I have installed dotnet core 2 preview and generated project with help dotnet 2.0 preview?
The text was updated successfully, but these errors were encountered: