Assembly Linking

Eintrag zuletzt aktualisiert am: 21.09.2019

Assembly Linking ist ein Deploymentverfahren, das in .NET Core 3.0 eingeführt wurde. Es gab es zuvor in Mono.

IL Linker aus Mono [https://github.com/mono/linker]
"This tool detects what code is required, and then trims unused libraries. This tool can significantly reduce the deployment size of some apps."
<PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>
Kompilieren dauert wesentlich länger!

Achtung: Anwendungen die Reflection oder andere dynamische Features nutzen, können mit IL Linker nicht funktionieren ohne zusätzliche Einstellungen!
Il Linker würde die Assemblies entfernen!
"It's important to consider that applications or frameworks (including ASP.NET Core and WPF) that use reflection or related dynamic features, will often break when trimmed. This breakage occurs because the linker doesn't know about this dynamic behavior and can't determine which framework types are required for reflection."

Drei Lösungen:
typeof(System.IO.File)
<TrimmerRootAssembly Include="System.Data" />
<TrimmerRootDescriptor Include="ILLinker.xml" />