Native AOT et trimming pour la conversion de documents en .NET

Les deux assemblys DocToolkit sont trimmables, l'assembly principal est compatible AOT, et la CI exécute le résultat. Ce guide donne la commande, ce que la CI prouve, et le seul avertissement à prévoir.

dotnet publish -c Release -r linux-x64 -p:PublishAot=true

Ce que la CI prouve

  • Les deux assemblys sont marqués comme trimmables, et l'assembly principal est marqué comme compatible AOT.
  • La CI publie une application sonde, en trimming dans un job et en native AOT dans l'autre, et vérifie qu'aucun avertissement n'appartient à DocToolkit.
  • Ensuite, la CI exécute le binaire. Une bibliothèque qui se publie sans avertissement mais plante au premier appel ne passerait aucun des deux jobs.
  • L'exécuter compte, car ni le trimming ni l'AOT n'échouent à la publication quand ils échouent : l'application lève une exception, ou produit discrètement un document vide, en production.

L'unique avertissement de ClosedXML

  • Les bibliothèques OOXML sous-jacentes utilisent la réflexion par endroits.
  • ClosedXML émet un avertissement, IL2090 dans DescribedEnumParser<T>, en trimming comme en AOT.
  • La lecture et l'écriture de feuilles de calcul fonctionnent correctement dans les binaires publiés que la CI exécute, mais l'avertissement apparaîtra dans votre propre sortie.

Ce qu'il ne fait pas

  • Si vous appliquez un trimming ou une publication AOT agressifs et que quelque chose échoue, vérifiez les avertissements des assemblys OOXML avant de soupçonner DocToolkit.