記一個(gè).NET AOT交叉編譯時(shí)的坑
記一個(gè).NET AOT交叉編譯時(shí)的坑
背景:
使用.NET9開(kāi)發(fā)的Avalonia項(xiàng)目需要部署到Linux-arm64
踩坑:
根據(jù)官方AOT交叉編譯文檔配置后執(zhí)行打包
dotnet publish -r linux-arm64
提示error : The PrivateSdkAssemblies ItemGroup is required for _ComputeAssembliesToCompileToNative
找答案:
通過(guò)在Github上查找,找到了一個(gè)AOT交叉編譯的文檔
這個(gè)文檔指出了如果需要交叉編譯到對(duì)應(yīng)的編譯器,需要對(duì)應(yīng)的ILCompiler包,如果需要交叉編譯到Linux-arm64,則需要runtime.linux-arm64.Microsoft.DotNet.ILCompiler包
解決:
添加runtime.linux-arm64.Microsoft.DotNet.ILCompilerNUGET包后再執(zhí)行dotnet publish -r linux-arm64,編譯成功
后續(xù):
編譯成功后再刪除runtime.linux-arm64.Microsoft.DotNet.ILCompiler包引用,再次執(zhí)行交叉編譯,貌似也能成功,可能只是需要這個(gè)包把對(duì)應(yīng)的ILCompiler下載回來(lái),后續(xù)就不用特別引用了

浙公網(wǎng)安備 33010602011771號(hào)