安装Serilog.Expressions后UWP ARM64 Release编译失败求助
UWP ARM64 Release构建失败(安装Serilog.Expressions包后)
错误信息
C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\microsoft.net.native.compiler\2.2.12-rel-31116-00\tools\Microsoft.NetNative.targets(809,5): error : ILT0005: 'C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\runtime.win10-arm64.microsoft.net.native.compiler\2.2.12-rel-31116-00\tools\ARM64\ilc\Tools64\nutc_driver.exe @"C:\proj\TestAppBuild\obj\ARM64\Release\ilc\intermediate\MDIL\TestAppBuild.rsp"' returned exit code -1073741819
复现步骤
- 打开Visual Studio 2022最新版本
- 创建C#模板项目「空白应用(通用 Windows)」
- 添加Serilog.Expressions NuGet包
- 切换至ARM64的Release配置,构建解决方案
问题原因分析
该问题核心原因是**.NET Native编译器在ARM64 Release构建阶段,无法兼容Serilog.Expressions包中使用的特定IL代码结构**。Serilog.Expressions依赖表达式树动态编译、部分反射特性实现功能,这些特性在Debug模式下(.NET Native采用宽松编译策略)可以正常运行,但在ARM64 Release的AOT(提前编译)流程中,编译器的严格优化规则会触发兼容性冲突,直接导致编译进程崩溃(退出码-1073741819对应内存访问异常或未处理错误)。
目前该问题已在Serilog社区的相关议题中被追踪,开发者正在针对.NET Native的ARM64编译兼容性推进修复。
内容的提问来源于stack exchange,提问作者monty_python
相关产品推荐
相关产品推荐

