Native AOT und Trimming für die Dokumentkonvertierung in .NET
Beide DocToolkit-Assemblys sind trimmbar, die Kern-Assembly ist AOT-kompatibel, und die CI führt das Ergebnis aus. Diese Anleitung nennt den Befehl, was die CI belegt, und die eine Warnung, mit der Sie rechnen müssen.
dotnet publish -c Release -r linux-x64 -p:PublishAot=trueWas die CI belegt
- Beide Assemblys sind als trimmbar markiert, und die Kern-Assembly ist als AOT-kompatibel markiert.
- Die CI veröffentlicht eine Probe-Anwendung, in einem Job getrimmt und im anderen als Native AOT, und prüft, dass keine Warnung zu DocToolkit gehört.
- Dann führt die CI die Binärdatei aus. Eine Bibliothek, die sich ohne Warnung veröffentlichen lässt, aber beim ersten Aufruf abstürzt, würde keinen der beiden Jobs bestehen.
- Das Ausführen ist wichtig, weil weder Trimming noch AOT beim Veröffentlichen scheitern, wenn sie scheitern: Die App wirft eine Ausnahme oder erzeugt still ein leeres Dokument, in der Produktion.
Die eine ClosedXML-Warnung
- Die zugrunde liegenden OOXML-Bibliotheken verwenden stellenweise Reflection.
- ClosedXML gibt eine Warnung aus,
IL2090inDescribedEnumParser<T>, sowohl beim Trimming als auch bei AOT. - Lesen und Schreiben von Tabellen funktionieren in den veröffentlichten Binärdateien, die die CI ausführt, korrekt, aber die Warnung erscheint in Ihrer eigenen Ausgabe.
Was es nicht kann
- Wenn Sie aggressiv trimmen oder mit AOT veröffentlichen und etwas scheitert, prüfen Sie die Warnungen der OOXML-Assemblys, bevor Sie DocToolkit verdächtigen.
Installation
dotnet add package Ank.DocToolkitIn der DocToolkit-Dokumentation lesenNuGetGitHub