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

Ubuntu 16.04下Dotnet Core 2.2无法构建基础WebSharper应用

解决WebSharper项目构建时wsfsc.exe退出码8的问题

我之前在Ubuntu 16.04 + .NET Core 2.2环境里遇到过几乎一模一样的问题,这个错误本质是WebSharper的F#编译工具wsfsc.exe在Linux环境下的依赖或版本兼容问题导致的,下面是我亲测有效的解决步骤:

步骤1:更新WebSharper包版本

默认模板拉取的WebSharper版本可能和.NET Core 2.2兼容性不佳,你可以手动修改项目文件WebSharperTest.fsproj里的WebSharper相关包版本,换成对.NET Core 2.2 Linux支持更完善的稳定版,比如4.7.1.318:

<PackageReference Include="WebSharper" Version="4.7.1.318" />
<PackageReference Include="WebSharper.FSharp" Version="4.7.1.318" />
<PackageReference Include="WebSharper.AspNetCore" Version="4.7.1.318" />

修改后执行dotnet restore重新还原包,再尝试dotnet build。

步骤2:补全系统依赖库

wsfsc.exe作为.NET Core应用,在Ubuntu 16.04上运行需要一些系统级依赖,比如libunwind和libicu,你可以通过apt安装:

sudo apt-get update
sudo apt-get install libunwind8 libicu55

Ubuntu 16.04默认的libicu55刚好适配.NET Core 2.2的运行时需求,安装完成后重新构建项目。

步骤3:清理构建缓存

旧的构建缓存偶尔会引发奇怪的编译错误,你可以先删除项目的bin和obj目录,再重新构建:

rm -rf ./bin ./obj
dotnet build

步骤4:锁定.NET Core SDK版本

如果系统里同时存在多个SDK版本,可能会导致项目使用错误的版本构建。先查看已安装的SDK:

dotnet --list-sdks

如果有多个版本,在项目根目录创建global.json文件指定2.2版本(比如2.2.402):

{
  "sdk": {
    "version": "2.2.402"
  }
}

执行dotnet restore后再尝试构建。

补充:如果以上步骤都无效,你可以先创建一个仅保留默认Hello World代码的极简WebSharper项目,排除自定义代码的影响。如果极简项目也报错,大概率是环境兼容性问题——Ubuntu 16.04已停止官方支持,后续WebSharper版本对其兼容性会越来越差,建议考虑升级到Ubuntu 18.04及以上版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:52:13