A linker is in general a program (tool) used in application compiling process to incorporate together all required program artifacts (DLLs, assemblies, libraries, etc.) needed for an executable program.
The .NET core team is working on a .NET IL Linker version, with the goal to reduce the size of .NET Core applications. If you remember, similar approach was used by .NET native several years ago. Making application footprint small is in many scenarios not really required. But when .NET application has to be download before execution, it is good to have smaller footprint. For example, when application is downloaded from application store. Interestingly Microsoft is working on a project called "Blazor", which will leverage WebAssembly format to execute .NET code in a browser. Because applications, which run in browser, first have to be downloaded, the footprint of application does matter in this scenario too.
To recap, when using .NET IL linker, we want to create application footprint as small as possible.

To demonstrate linker in action, I have used an existing .NET Core 2.0 application. It is in this context an example application, a CLI command line toll inside of daenet IoTService platform.

I used following command line to build and publish my executable:

publish -c release -r win-x64 -o out

This is nothing new. It creates an application with s called framework independent deployment (FID). As next I added a new nuget configuration to the project:

dotnet new nuget

, and finally pasted following in the newly created nuget configuration:

Recap

.NET IL Linker is a new tool, which helps making .NET Core application footprint smaller.
In some scenarios, this is not very important, but when application needs to be downloaded from store or from some server, it is important to have small footprint to reduce download time and application startup time. This tool will be used in “Blazor”, which leverage using of WebAssemblies.