roslyn/docs/infrastructure/cross-platform.md

1.3 KiB

Cross Platform Instructions

Caveats

Linux and Mac support for developing Roslyn is very much a work in progress. Not everything is supported at the moment and the steps detailed on this page will change very frequently. If this is an area you are interested in then please check back frequently for updates.

Building

Build all cross-platform projects with:

cd <roslyn-git-directory>
./build.sh --restore

The script will install .NET Core to .dotnet directory if it is not found on $PATH. It will then restore required NuGet packages and build Compilers.slnf solution. The option --restore (or -r) is only needed when building for the first time, or when NuGet references change.

Using the compiler

After building, there will be a csc in the artifacts/bin/csc/Debug/netcoreapp3.1 and artifacts/bin/csc/Debug/net472 directories. Use the former to run on .NET Core and the latter on Mono.

Running csc.exe on Mono

Use mono artifacts/bin/csc/Debug/net472/csc.exe -noconfig to run the C# compiler.

-noconfig is needed because csc.exe by default references the csc.rsp file next to it. This is the Windows response file, so not all assemblies are present when running on Mono. Pass the -noconfig option to ignore this response file.