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)
<TrimmerRoot
Assembly Include="
System.Data" />
<TrimmerRootDescriptor Include="ILLinker.xml" />