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

.NET 8 Web API项目名称含多段点在macOS无法启动,求合规解决办法

解决macOS上.NET 8长项目名启动报exit code 137的问题

exit code 137对应进程被SIGKILL信号终止,结合你改名短项目文件即可运行的现象,大概率是macOS环境下.NET CLI处理长项目文件名时的路径/进程名限制问题,以下是无需违反命名空间约定的解决方法:

方法1:修改程序集输出名称(推荐)

保持项目文件名My.Fancy.Name.Space.Service.csproj不变,在项目文件中添加AssemblyName配置,将编译后的程序集名称改为短名称:

<PropertyGroup>
  <!-- 保留符合命名空间约定的项目结构,仅修改输出程序集名 -->
  <AssemblyName>Service</AssemblyName>
  <!-- 若项目存在多个入口点,显式指定启动对象 -->
  <StartupObject>My.Fancy.Name.Space.Service.Program</StartupObject>
</PropertyGroup>

修改后,无论是dotnet run还是IDE启动,都会使用短名称的程序集,避开长文件名带来的限制。

方法2:指定短路径输出目录

长项目名可能导致编译生成的临时文件路径超出macOS的路径长度限制,可手动指定更短的输出目录:
在csproj中添加:

<PropertyGroup>
  <OutputPath>../out/</OutputPath>
</PropertyGroup>

或在命令行运行时临时指定:

dotnet run --output ../out

方法3:升级.NET 8 SDK到最新补丁版本

部分早期.NET 8 SDK版本存在macOS长文件名兼容bug,建议更新到最新的.NET 8 patch版本:

dotnet tool update --global dotnet-update-checker
dotnet update

方法4:先发布再运行

跳过dotnet run的实时编译阶段,先将项目发布到短路径目录,再运行:

# 发布到当前目录下的publish文件夹
dotnet publish -c Release -o ./publish
# 进入发布目录运行程序
cd publish
dotnet My.Fancy.Name.Space.Service.dll

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:05:03