如何修剪 .NET MAUI Android 应用程序中的依赖关系?

问题描述 投票:0回答:1

我在 .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 和修剪发布,PDF 导出将完全按预期工作。然而,同时我不想完全放弃 AOT 和修剪带来的优化优势(这在我的应用程序中很明显)。

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

探索互联网没有取得任何成果。我尝试添加以下内容:

<TrimmerRootAssembly Include="MigraDocCore.Rendering" />

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

TrimmerRootAssembly

<TrimmerRootAssembly>MigraDocCore.Rendering</TrimmerRootAssembly>

完全被忽略了。

是否有可能修剪依赖关系,或者我没有正确理解程序集的定义?

android maui trim aot pdfsharpcore
1个回答
0
投票

您必须指定

RootMode
:

<ItemGroup>
    <TrimmerRootAssembly Include="MigraDocCore.Rendering" RootMode="library"/>
</ItemGroup>
© www.soinside.com 2019 - 2024. All rights reserved.