提问人:MaxKolac 提问时间:10/23/2023 最后编辑:MaxKolac 更新时间:10/25/2023 访问量:49
如何剪裁 .NET MAUI Android 应用中的依赖项?
How to trim dependencies in a .NET MAUI Android app?
问:
我在 .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>
它被完全忽略了。
是否可以修剪依赖项,或者我没有正确定义程序集?
答: 暂无答案
评论