<story><title>Introducing .NET IL Linker</title><url>https://github.com/dotnet/announcements/issues/30</url></story><parent_chain></parent_chain><comment><author>jbevain</author><text>Fun fact, the Mono Linker project started 10 years ago during the second edition of the Google Summer of Code!&lt;p&gt;It was originally used to reshape the entire Mono class library into a subset to expose the Silverlight class library API surface for Moonlight.&lt;p&gt;It was then used to link iOS and Android applications in MonoTouch and Mono for Android, and Xamarin continued to use and improve it.&lt;p&gt;The Mono Linker has an open architecture making it reasonably easy to customize how it processes code , and detect patterns specific to each platform to link them away. Xamarin added linker steps to do more than tree-shaking, and remove dead code inside methods. For instance:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  if (TargetPlatform.Architecture == Architecture.X64) {
    &amp;#x2F;&amp;#x2F; ..
  }
&lt;/code&gt;&lt;/pre&gt;
The entire if body can be removed if the linker knows that TargetPlatform.Architecture will not be X64.&lt;p&gt;And now, it&amp;#x27;s the base for the .NET Core linker. Quite a journey!</text></comment>
<story><title>Introducing .NET IL Linker</title><url>https://github.com/dotnet/announcements/issues/30</url></story><parent_chain></parent_chain><comment><author>christophilus</author><text>It&amp;#x27;s been a few years since I used .NET, but the self-contained deployment story sounds like a big win that I used to really want:&lt;p&gt;&amp;quot;Self-contained deployment. Unlike FDD, a self-contained deployment (SCD) doesn&amp;#x27;t rely on the presence of shared components on the target system. All components, including both the .NET Core libraries and the .NET Core runtime, are included with the application and are isolated from other .NET Core applications. SCDs include an executable (such as app.exe on Windows platforms for an application named app), which is a renamed version of the platform-specific .NET Core host, and a .dll file (such as app.dll), which is the actual application.&amp;quot;&lt;p&gt;So, this IL Linker is in support of that story, and aims to reduce the over all size of self-contained applications... Maybe it&amp;#x27;s time to start tinkering w&amp;#x2F; .NET again.</text></comment>