Ubuntu下执行EF Core命令报错:应用程序'msbuild'不存在
问题分析与解决办法
核心问题
- 缺少.NET SDK:从
dotnet --info的输出能明确看到.NET SDKs installed: No SDKs were found。dotnet-ef这类需要编译项目、读取项目元数据的命令必须依赖.NET SDK,仅安装.NET Runtime完全满足不了需求。 - 路径分隔符错误:Ubuntu是Linux系统,文件路径分隔符得用
/,但你执行的命令里用了Windows的\,这会导致系统找不到指定的项目文件。
解决步骤
安装.NET 7 SDK
你的命令指定了--framework net7.0,所以得安装对应版本的SDK。在Ubuntu上:- 先添加微软官方软件源(可通过官方渠道完成源配置)
- 执行以下命令更新包列表并安装SDK:
sudo apt-get update && sudo apt-get install -y dotnet-sdk-7.0
修正EF Core命令的路径分隔符
把命令里所有的\替换成/,修正后的命令如下:dotnet-ef database update --project Payment.Service.Persistence/Payment.Service.Persistence.csproj --startup-project Payment.Service.Presentation/Payment.Service.Presentation.csproj --context Payment.Service.Persistence.PaymentServiceDbContext --configuration Debug --framework net7.0 Initial验证并执行
先运行dotnet --info确认.NET 7 SDK已经装好,之后再执行修正后的EF Core命令即可。
内容的提问来源于stack exchange,提问作者S k
相关产品推荐
相关产品推荐

