记一个.NET AOT交叉编译时的坑
<h1 id="记一个net-aot交叉编译时的坑">记一个.NET AOT交叉编译时的坑</h1><h3 id="背景">背景:</h3>
<p>使用.NET9开发的Avalonia项目需要部署到Linux-arm64</p>
<h3 id="踩坑">踩坑:</h3>
<p>根据官方AOT交叉编译文档配置后执行打包</p>
<pre><code class="language-shell">dotnet publish -r linux-arm64
</code></pre>
<p>提示<code>error : The PrivateSdkAssemblies ItemGroup is required for _ComputeAssembliesToCompileToNative</code></p>
<h3 id="找答案">找答案:</h3>
<p>通过在Github上查找,找到了一个AOT交叉编译的文档</p>
<p>这个文档指出了如果需要交叉编译到对应的编译器,需要对应的ILCompiler包,如果需要交叉编译到Linux-arm64,则需要<code>runtime.linux-arm64.Microsoft.DotNet.ILCompiler</code>包</p>
<h3 id="解决">解决:</h3>
<p>添加<code>runtime.linux-arm64.Microsoft.DotNet.ILCompiler</code>NUGET包后再执行<code>dotnet publish -r linux-arm64</code>,编译成功</p>
<h3 id="后续">后续:</h3>
<p>编译成功后再删除<code>runtime.linux-arm64.Microsoft.DotNet.ILCompiler</code>包引用,再次执行交叉编译,貌似也能成功,可能只是需要这个包把对应的ILCompiler下载回来,后续就不用特别引用了</p><br><br>
来源:https://www.cnblogs.com/wujuncheng/p/18806184
頁:
[1]