ilc.exe无法找到合适的系统模块,如何正确指定?
问题:NativeAOT ilc.exe编译提示System.PrivateCoreLib不存在,如何指定系统模块?
我正尝试将.NET NativeAOT的ilc.exe编译器引入我的编译器构建流程,当前调用参数为:
ilc in.dll -o out.exe
我已从源码构建.NET runtime以获取完整的ilc.exe,工具所在构建目录包含NativeAOT所需的完整运行时,包括14MB的System.PrivateCoreLib.dll,但运行命令时仍报错:
Error: System module System.PrivateCoreLib does not exists. Make sure that you specify --systemmodule
请问正确指定系统模块的方式是什么?
解决方案
- 直接通过
--systemmodule参数指定System.PrivateCoreLib.dll的路径。如果该文件和ilc.exe在同一目录,命令可写为:ilc in.dll -o out.exe --systemmodule System.PrivateCoreLib.dll - 若文件不在当前工作目录,需提供完整绝对路径,示例:
ilc in.dll -o out.exe --systemmodule "D:\builds\runtime\artifacts\bin\ilc\Release\System.PrivateCoreLib.dll" - 补充说明:
ilc.exe不会自动在当前目录查找系统模块,必须显式指定路径。如果构建脚本需要适配多环境,可通过环境变量传递模块路径,或在脚本中动态获取System.PrivateCoreLib.dll的位置后拼接参数。
内容的提问来源于stack exchange,提问作者Jonas _
相关产品推荐
相关产品推荐

