aspnet / dnvm

OBSOLETE - see readme
Other
174 stars 61 forks source link

Install mono runtime on Windows #518

Closed masaeedu closed 6 years ago

masaeedu commented 8 years ago

I want to develop an app that will run on Linux using the mono runtime (the libraries I need aren't CoreCLR ready yet). The development will be done on my Windows box. I tried installing the mono runtime using the following command:

dnvm upgrade -r mono

Which resulted in the following error:

Unable to determine an operating system for a mono runtime. You must specify which OS to use with the OS parameter.

So I provided an argument for os:

 dnvm upgrade -r mono -os win

This seems to work initially, but eventually chokes:

Determining latest version Downloading dnx-mono.1.0.0-rc1-update2 from https://www.nuget.org/api/v2 Installing to C:\Users\masae.dnx\runtimes\dnx-mono.1.0.0-rc1-update2 dnvm-install : Cannot validate argument on parameter 'Runtime'. The argument "mono" does not belong to the set ",clr,coreclr" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again.

Is this a bug in the DNVM script, or is mono on Windows not supported? If not, would a mono on Windows DNX be a reasonable feature request?

muratg commented 8 years ago

dnx (+dnvm/dnu) is being retired in RC2 and the new command line experience is through dotnet CLI (https://github.com/dotnet/cli)

masaeedu commented 8 years ago

@muratg I didn't know that, thanks. Is this a feature that's already available in the new CLI (or planned to be included)?

muratg commented 8 years ago

@masaeedu "runtime" concept is different in the new world, as such you won't need DNVM or similar. Basically for CoreCLR apps will either bring the runtime with them or will use a shared runtime install. For desktop, though all the dependencies are brought in with the app (except those already existing in the full CLR)

masaeedu commented 8 years ago

@muratg When you say full/shared CLR, I'm assuming this refers to the full Microsoft CLR on Windows and Mono on Linux. However, I'm developing a console application that will run on Linux on my Windows box.

Since code and dependencies that build and run on .NET 4.5 are not guaranteed to run on Mono (e.g. because of differences in the BCL), I need to compile and test against Mono. How would I do this with the new CLI (if this is at all possible)?

muratg commented 8 years ago

@masaeedu Not sure if that's still a scenario in the CLI world. I recommend asking this out there, or in StackOverflow