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

Ubuntu运行C# .NET程序提示Permission Denied问题求助

解决Ubuntu 20.04下.NET 8 dotnet run 权限拒绝问题

核心问题分析

报错提示Permission denied,结合你的项目路径和运行环境,主要原因集中在路径特殊字符干扰和外部存储挂载权限限制两点。


1. 移除路径中的特殊字符

你的项目目录名包含#符号(learningC#),在Linux环境中#是shell注释标记,会导致命令解析异常,直接引发路径识别或权限判定错误。

  • 重命名项目目录,比如改为learningCSharp或learningCS
  • 重新在VS Code中打开项目,依次执行:
    dotnet clean
    dotnet restore
    dotnet run
    

2. 修复外部存储的挂载执行权限

项目位于/media/emerson-rexroth/BRYCESTUFF下,这是外部挂载的存储设备,Ubuntu默认挂载外部存储时可能禁用了exec(执行)权限,导致无法运行生成的二进制文件。

  • 查看当前挂载选项:
    mount | grep BRYCESTUFF
    
  • 如果输出中包含noexec而无exec,先卸载设备再重新挂载并添加执行权限:
    sudo umount /media/emerson-rexroth/BRYCESTUFF
    # 替换下方[你的设备名],可通过lsblk命令查看,例如sdb1
    sudo mount -o exec /dev/[你的设备名] /media/emerson-rexroth/BRYCESTUFF
    
  • 若要永久生效,编辑/etc/fstab文件,在对应挂载行的选项中添加exec,示例:
    UUID=xxxxxx /media/emerson-rexroth/BRYCESTUFF ext4 defaults,exec 0 0
    

3. 临时手动赋予可执行权限

如果上述方法暂时无法操作,可直接给生成的二进制文件添加执行权限:

chmod +x "/media/emerson-rexroth/BRYCESTUFF/code/learningC#/bin/Debug/net8.0/learningC#"

注意用双引号包裹带#的路径,避免shell解析错误,之后再执行dotnet run


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:07:10