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

Linux下AD域用户执行dotnet build/msbuild/run失败问题咨询

解决ASP.NET Core项目普通用户dotnet build失败、sudo可运行的问题

你遇到的这个情况,大概率是权限不匹配导致的——毕竟只有提升权限后构建才能成功,而且跨2.0.6和2.1预览版都出现这个问题,基本可以锁定是文件/目录的所有权或读写权限出了问题。我给你梳理几个针对性的排查和解决步骤:

1. 检查项目目录的所有权与权限

先确认你的项目目录是不是由root创建的,或者当前普通用户没有读写权限:

  • 打开终端进入项目根目录,执行:
    ls -la
    
    看输出里的owner列,如果显示是root,那就是所有权问题。
  • 执行命令把目录所有权改成当前用户:
    sudo chown -R $USER:$USER /path/to/your/project
    
    记得替换/path/to/your/project为你的实际项目路径。

2. 修复NuGet缓存目录的权限

.NET Core构建依赖NuGet缓存,如果缓存目录权限不对,普通用户无法读取或写入包文件,也会导致构建失败:

  • NuGet缓存默认在~/.nuget/packages,先检查权限:
    ls -la ~/.nuget
    
  • 如果权限异常,修改所有权:
    sudo chown -R $USER:$USER ~/.nuget
    
  • 也可以直接清空缓存后重新恢复依赖(缓存损坏也可能引发类似问题):
    rm -rf ~/.nuget/packages
    dotnet restore
    

3. 确保.NET Core SDK目录的权限正常

如果SDK是用sudo安装的,可能普通用户没有访问SDK文件的权限:

  • SDK默认安装路径是/usr/share/dotnet,检查权限:
    ls -la /usr/share/dotnet
    
  • 调整目录权限让普通用户能读取和执行:
    sudo chmod -R 755 /usr/share/dotnet
    

4. 检查Rider的运行权限

千万别用root身份启动Rider,否则它创建的临时文件、配置文件都会是root权限,后续普通用户操作必然出问题:

  • 如果之前不小心用root开了Rider,先关闭它,然后删除Rider的用户配置目录(比如~/.local/share/JetBrains/Rider202x.x,根据你的版本调整),再用普通用户重新启动Rider。

做完这些步骤后,先在终端执行dotnet restore,再执行dotnet build验证是否正常,然后再尝试用Rider构建运行项目,应该就能解决问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:59:17