如何剪裁 .NET MAUI Android 应用中的依赖项?

How to trim dependencies in a .NET MAUI Android app?

提问人:MaxKolac 提问时间:10/23/2023 最后编辑:MaxKolac 更新时间:10/25/2023 访问量:49

问:

我在 .Net 7 中有一个 .NET MAUI Android 应用程序,它使用 PdfSharpCore 和 MigraDocCore 将报告生成为 PDF 文件。当我在调试配置上构建和部署应用程序时,一切正常。

但是,如果我在 Release 上构建并部署它,无论更改了什么,单击按钮以呈现 PDF 文件总是会引发完全相同的异常:

System.NullReferenceException: Object reference not set to an instance of an object 
at MigraDocCore.DocumentObjectModel.Internals.ValueDescriptor.CreateValue() 
at MigraDocCore.DocumentObjectModel.Internals.DocumentObjectDescriptor.GetValue(DocumentObject, GV) 
at MigraDocCore.DocumentObjectModel.Internals.Meta.GetValue(DocumentObject, String, GV) 
at MigraDocCore.DocumentObjectModel.DocumentObject.GetValue(String, GV) at MigraDocCore.DocumentObjectModel.Visitors.MergedCellList.GetEffectiveBorders(Cell) 
at MigraDocCore.Rendering.TableRenderer.FormatCells() 
at MigraDocCore.Rendering.TableRenderer.InitFormat(Area, FormtInfo) 
at MigraDocCore.Rendering.TableRenderer.Format(Area, FormtInfo) 
at MigraDocCore.Rendering.TopDownFormatter.FormatOnAreas(XGraphics, Boolean) 
at MigraDocCore.Rendering.FormattedDocument.Format(XGraphics) 
at MigraDocCore.Rendering.DocumentRenderer.PrepareDocument() 
at MigraDocCore.Rendering.PdfDocumentRenderer.PrepareDocumentRender(Boolean) 
at MigraDocCore.Rendering.PdfDocumentRenderer.PrepareRenderPages(Boolean)
at MigraDocCore.Rendering.PdfDocumentRenderer.RenderDocument() 
at FarmOrganizer.IO.Exporting.PDF.PdfBuilder.Build() 
at FarmOrganizer.ViewModels.ReportPageViewModel.ExportReportAsPDF()

我知道这看起来像是 MigraDocCore 本身的问题,但是如果我禁用 AOT 和 Release 的修剪,PDF 导出将完全按预期工作。但是,与此同时,我不想完全放弃来自 AOT 和修剪的优化优势(这在我的应用程序中很明显)。

所以这是我的问题 - 我如何正确设置修剪,以便它修剪除 MigraDocCore、PdfSharpCore 及其所有依赖项之外的所有内容?

探索互联网没有产生任何工作结果。我尝试添加以下内容:

<TrimmerRootAssembly Include="MigraDocCore.Rendering" />

但是在我的 .csproj 文件中添加此内容后,它完全破坏了项目,VisualStudio 指出“无法识别 Include 中的元素”。我尝试添加“.ddl”后缀不起作用。如果我添加这样的内容:TrimmerRootAssembly

<TrimmerRootAssembly>MigraDocCore.Rendering</TrimmerRootAssembly>

它被完全忽略了。

是否可以修剪依赖项,或者我没有正确定义程序集?

Android Maui 修剪 AOT PDFSHARPCORE

评论


答: 暂无答案