You need to enable JavaScript to run this app. VSCode搭建.NET环境时升级.NET 5.0后执行dotnet命令报空路径错误
优惠活动
大模型
产品
解决方案
定价
更多

VSCode搭建.NET环境时升级.NET 5.0后执行dotnet命令报空路径错误

Ubuntu 18.04 .NET 5.0升级后dotnet命令空路径报错处理

场景说明

在VSCode搭建.NET开发环境过程中,对Ubuntu 18.04设备上的.NET环境从3.1版本升级到5.0版本后,执行dotnet new console等项目创建命令、甚至大部分常规dotnet命令时触发统一异常,通过dotnet --info可正常输出SDK安装列表,无SDK缺失类异常。

完整报错堆栈

Value cannot be null. (Parameter 'path1')
   at System.IO.Path.Combine(String path1, String path2, String path3, String path4)
   at Microsoft.TemplateEngine.Utils.EngineEnvironmentSettings.DefaultPathInfo.get_BaseDir()
   at Microsoft.TemplateEngine.Edge.Paths.UserPaths.get_AliasesFile()
   at Microsoft.TemplateEngine.Edge.Settings.AliasRegistry.EnsureLoaded()
   at Microsoft.TemplateEngine.Edge.Settings.AliasRegistry.TryExpandCommandAliases(IReadOnlyList`1 inputTokens, IReadOnlyList`1& expandedInputTokens)
   at Microsoft.TemplateEngine.Cli.AliasSupport.TryExpandAliases(INewCommandInput commandInput, AliasRegistry aliasRegistry)
   at Microsoft.TemplateEngine.Cli.AliasSupport.CoordinateAliasExpansion(INewCommandInput commandInput, AliasRegistry aliasRegistry, ITelemetryLogger telemetryLogger)
   at Microsoft.TemplateEngine.Cli.New3Command.ExecuteAsync()
   at Microsoft.TemplateEngine.Cli.CommandParsing.NewCommandInputCli.<>c__DisplayClass19_0.<<OnExecute>b__0>d.MoveNext()

dotnet --info 输出参考

.NET SDK (reflecting any global.json):
 Version:   5.0.100
 Commit:    5044b93829

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64
 Base Path:   /usr/share/dotnet/sdk/5.0.100/

Host (useful for support):
  Version: 5.0.0
  Commit:  cf258a14b7

.NET SDKs installed:
  3.1.301 [/usr/share/dotnet/sdk]
  5.0.100 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

问题根因

  • 报错堆栈定位显示,异常触发于.NET模板引擎的用户配置路径初始化环节,调用Path.Combine拼接路径时传入了null参数
  • 升级过程中若使用root权限执行SDK安装操作,会将用户主目录下的~/.dotnet配置目录属主修改为root,普通用户执行dotnet命令时无法正常读取该目录的配置信息,最终导致路径拼接拿到空值抛出异常
  • 该初始化逻辑处于dotnet CLI执行流程的前置环节,因此绝大多数需要模板解析、别名匹配的dotnet命令都会触发相同报错

修复步骤

  • 核查用户主目录下.dotnet目录的权限:执行ls -la ~ | grep .dotnet,若目录属主显示为root,执行权限修正命令:
    sudo chown -R $(whoami):$(whoami) ~/.dotnet
  • 核验修复结果:重新执行dotnet new console命令,确认可正常创建控制台项目且无报错触发
  • 若修正权限后仍复现相同报错,核查当前终端的HOME环境变量:执行echo $HOME,确认输出路径与系统对应用户的主目录配置匹配,无异常篡改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 13:24:03