Building a Hello World console app with CoreRT
CoreRT is an AOT-optimized .NET Core runtime. This document will guide you through compiling a .NET Core Console application with CoreRT.
Please ensure that pre-requisites are installed.
Create .NET Core Console project
Open a new shell/command prompt window and run the following commands.
> dotnet new console -o HelloWorld > cd HelloWorld
This will create a simple Hello World console app in
Program.cs and associated project files.
Add CoreRT to your project
Using CoreRT to compile your application is done via the ILCompiler NuGet package, which is published to MyGet with the CoreRT daily builds. For the compiler to work, it first needs to be added to your project.
In your shell/command prompt navigate to the root directory of your project and run the command:
> dotnet new nuget
This will add a nuget.config file to your application. Open the file and in the
<packageSources> element under
<clear/> add the following:
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
Once you've added the package source, add a reference to the compiler by running the following command:
> dotnet add package Microsoft.DotNet.ILCompiler -v 1.0.0-alpha-*
Restore and Publish your app
Once the package has been successfully added it's time to compile and publish your app! In the shell/command prompt window, run the following command:
> dotnet publish -r <RID> -c <Configuration>
<Configuration> is your project configuration (such as Debug or Release) and
<RID> is the runtime identifier (one of win-x64, linux-x64, osx-x64). For example, if you want to publish a release configuration of your app for a 64-bit version of Windows the command would look like:
> dotnet publish -r win-x64 -c release
Once completed, you can find the native executable in the root folder of your project under
/bin/x64/<Configuration>/netcoreapp2.1/publish/. Navigate to
/bin/x64/<Configuration>/netcoreapp2.1/publish/ in your project folder and run the produced native executable.
Feel free to modify the sample application and experiment. However, keep in mind some functionality might not yet be supported in CoreRT. Let us know on the Issues page.