FROM debian:buster
RUN apt-get update
RUN apt-get install -y binfmt-support binutils-arm-linux-gnueabi build-essential clang cmake curl debootstrap gettext git gpg libbz2-dev libcurl4-openssl-dev libicu-dev libkrb5-dev liblldb-dev liblttng-ust-dev libncurses5-dev libncursesw5-dev libnuma-dev libreadline-dev libsqlite3-dev libssl-dev libunwind8 libunwind8-dev lldb llvm make parallel qemu qemu-user-static wget zlib1g-dev apt-transport-https
# Install dotnet SDK 3.1
# https://docs.microsoft.com/en-us/dotnet/core/install/linux-debian
RUN wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
RUN dpkg -i packages-microsoft-prod.deb
RUN apt-get update
RUN apt-get install -y dotnet-sdk-3.1
RUN mkdir dotnet
WORKDIR /dotnet/
RUN git clone https://github.com/Tryll/CoreRT-armel
#RUN git clone https://github.com/dotnet/corefx --branch release/3.1
#RUN git clone https://github.com/dotnet/coreclr --branch release/3.1
# Cross-Build CoreRT
# https://github.com/dotnet/corert/blob/master/Documentation/cross-building.md
WORKDIR /dotnet/CoreRT-armel/
RUN ./cross/build-rootfs.sh armel
RUN ./cross/build-rootfs.sh x86 xenial
RUN echo check_certificate = off > $HOME/.wgetrc
RUN echo insecure > $HOME/.curlrc
WORKDIR /dotnet/CoreRT-armel/
RUN ./build.sh armel release cross skiptests
#RUN ./build.sh x86 debug cross crosstarget skiptests
This project is superseded by NativeAOT experiment in dotnet/runtimelab repo.
This repo contains the .NET Core runtime optimized for ahead of time compilation. The CoreRT compiler can compile a managed .NET Core application into a native (architecture specific) single-file executable that is easy to deploy. It can also produce standalone dynamic or static libraries that can be consumed by applications written in other programming languages. To learn more about CoreRT, see the intro document.
If you would like to give CoreRT a try, we publish daily snapshots of CoreRT to a NuGet feed. Using CoreRT is as simple as adding a new package reference to your .NET Core project and publishing it. Check out one of our samples: a "Hello World" console app, a simple ASP.NET Core app, a MonoGame game or a native library. The README.md
file in each sample's directory will guide you through the process step by step.
- Windows, MacOS and Linux x64 w/ RyuJIT codegen is able to compile many complex apps.
- ASP.NET Core sample
- MonoGame sample
- Avalonia sample and demo video
- ADO.NET sample
- EntityFrameworkCore.Sqlite sample
- Unsupported features: Dynamic loading (e.g.
Assembly.LoadFile
), dynamic code generation (e.g.System.Reflection.Emit
), Windows-specific interop (e.g. COM, WinRT)
- Linux ARM w/ RyuJIT codegen: ElmSharp Hello Tizen application (detailed status)
- CppCodeGen (targets all platforms that support C++): Simple C# programs. The big missing features are garbage collection and exception handling.
- WebAssembly: Early prototype that compiles and runs very trivial programs only. Many features are not yet implemented.
Some of the best ways to contribute are to try things out, file bugs, and join in design conversations.
Looking for something to work on? The up for grabs issues are a great place to start. Take a look at our documentation to find out about the architecture and learn how to build and test the repo.
This project follows the .NET Core Contribution Guidelines.
Use https://developercommunity.visualstudio.com/ to report problems and suggestions related to .NET Native for UWP.
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
The CoreRT Repo is licensed under the MIT license.
CoreRT is a .NET Foundation project.
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.
There are many .NET related projects on GitHub.
- The .NET home repo links to 100s of .NET projects, from Microsoft and the community.
- The ASP.NET Core repo is the best place to start learning about ASP.NET Core.