MSBuild can be successfully built on Windows, OS X 10.11, Ubuntu 14.04, and Ubuntu 16.04. Newer versions of Ubuntu may work, but .NET Core development is currently aimed at 14.04.
cibuild.cmd --target CoreCLR
Required packages for OSX & Ubuntu
MSBuild currently builds with a prerelease version of .NET Core 1.0. It requires the .NET Core prerequisites, which you can acquire manually or easily get by installing the .NET Core SDK.
-
OpenSSL: MSBuild uses the .Net CLI to download Nuget packages during its build process. The CLI requires a recent OpenSSL library available in
/usr/lib
. This can be downloaded using brew on OS X (brew install openssl
) and apt-get (apt-get install openssl
) on Ubuntu, or building from source. If you use a different package manager and see an error that saysUnable to load DLL 'System.Security.Cryptography.Native'
,dotnet
may be looking in the wrong place for the library. -
Mono when doing a Mono-hosted version of MSBuild
Required packages for Ubuntu
- libunwind is required by .NET Core. Install it using
sudo apt-get install libunwind8
##Build process##
Targeting .Net Core: ./cibuild.sh --target CoreCLR
Targeting Mono: ./cibuild.sh --target Mono
Using a .NET core MSBuild host: ./cibuild.sh --host CoreCLR
Using a Mono MSBuild host: ./cibuild --host Mono
##Tests##
Tests are currently disabled on platforms other than Windows. If you'd like to run them, explicitly opt in with
./cibuild.sh --scope Test
The best way to get .NET Core MSBuild is through the dotnet CLI, which redistributes us. It's not always the very very latest but they take regular drops. After installing it, you can use MSBuild through dotnet build
or by manual invocation of the MSBuild.dll
in the dotnet distribution.
Set the environment variable MSBUILDDEBUGONSTART
to 2.
Add a Console.ReadKey
in the test and manually invoke it via xunit. Example:
Tools\dotnetcli\dotnet.exe bin\Debug-NetCore\AnyCPU\Windows_NT\Windows_NT_Deployment_Test\xunit.console.netcore.exe bin\Debug-NetCore\AnyCPU\Windows_NT\Windows_NT_Deployment_Test\Microsoft.Build.Engine.UnitTests.dll -noshadow -method Microsoft.Build.UnitTests.Evaluation.ItemEvaluation_Tests.ImmutableListBuilderBug