Manjaro系统中.NET Core安装后dotnet watch运行报错求助
.NET安装冲突与
dotnet watch错误解决 清理冲突安装
你同时使用官方脚本和snap两种方式安装.NET,导致版本与路径冲突,先彻底清理现有安装:
- 卸载snap的.NET包:
sudo snap remove dotnet-sdk sudo snap remove dotnet-runtime-70
- 删除脚本安装的文件:
sudo rm -rf /usr/share/dotnet
统一用官方脚本重装
执行以下命令安装匹配的.NET 7 SDK及运行时:
wget https://dot.net/v1/dotnet-install.sh chmod +x dotnet-install.sh sudo ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 7.0 -version latest
指定-channel 7.0是为了锁定稳定的7.x系列,避免自动升级到更高版本引发兼容问题。
配置环境变量
将.NET路径加入系统环境变量,确保系统能正确定位:
- 打开你使用的shell配置文件(比如
~/.bashrc或~/.zshrc),添加以下内容:
export DOTNET_ROOT=/usr/share/dotnet export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
- 让配置生效:
source ~/.bashrc # bash用户执行此命令 # 或者 source ~/.zshrc # zsh用户执行此命令
验证安装
运行命令确认SDK和运行时版本匹配:
dotnet --list-sdks dotnet --list-runtimes
正常情况下会看到SDK与对应运行时版本一致(比如SDK 7.0.400对应运行时7.0.10)。
重新测试项目
回到你的Blazor项目目录,运行:
dotnet watch
错误根源
之前的问题本质是:
- 脚本安装的SDK 7.0.400位于
/usr/share/dotnet,但系统优先调用了snap安装的运行时7.0.9(路径/var/lib/snapd/snap/dotnet-sdk/216/),版本不匹配导致rzc.dll无法启动。 - 两种安装方式的环境隔离冲突,使得编译器依赖的版本与实际运行时版本不兼容。
内容的提问来源于stack exchange,提问作者Ahmed Hassan
相关产品推荐
相关产品推荐

