You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Debian上构建运行Windows编写的.NET Core应用遇Exec格式错误

问题根源分析

你遇到的Exec format error核心原因很明确:Microsoft.Net.Compilers 3.5.0是Windows专属的编译器包,它内置的编译工具是Windows平台的二进制可执行文件,在Debian Linux系统上根本无法运行,所以触发了执行格式不兼容的错误。

这个包最初是给旧版Visual Studio用的——用来让老IDE能用上更新的C#/VB编译器,但在跨平台的.NET Core构建场景里,.NET Core SDK本身已经自带了跨平台的编译器,完全不需要依赖这个Windows专属的包。

解决方案

方案1:直接移除Microsoft.Net.Compilers包引用(推荐)

修改你的.csproj文件,删掉以下整个包引用节点即可:

<PackageReference Include="Microsoft.Net.Compilers" Version="3.5.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

方案2:替换为跨平台的编译器工具包(若需指定编译器版本)

如果你确实需要强制使用特定版本的编译器,可以用跨平台的Microsoft.Net.Compilers.Toolset包替代,修改后的引用如下:

<PackageReference Include="Microsoft.Net.Compilers.Toolset" Version="3.5.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
验证修复

修改.csproj后,在Debian机器上重新执行以下命令:

dotnet restore
dotnet build

这样就能正常完成跨平台构建了。

内容的提问来源于stack exchange,提问作者user13747357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 11:27:55