> Инструкция сгенерирована ChatGPT-5 Thinking, но я по этой инструкции настроил общий dotnet для Rider и терминала MacOS
## 1) Установите .NET системно (стандартный способ)
Один из вариантов (любой):
```bash
# Homebrew (удобно на macOS/ARM)
brew install --cask dotnet-sdk
# или официальный .pkg с сайта Microsoft (даёт те же пути в /usr/local/share/dotnet)
```
- `--cask` — флаг (flag), говорящий Homebrew, что нужно установить **cask**: готовый бинарный/GUI-пакет (вроде `.pkg`/`.dmg`), а не «формулу» (formula) из исходников.
- `dotnet-sdk` — токен пакета (package token), название нужного cask; здесь это официальный .NET SDK от Microsoft (CLI `dotnet`, компиляторы и т.д.).
Проверка:
```bash
dotnet --list-sdks # должен появиться 9.0.1xx
```
## 2) Переключите Rider на системный CLI
Rider → **Preferences → Build, Execution, Deployment → .NET / Toolset and Build**
В поле **.NET CLI executable path** выставьте:
```
/usr/local/share/dotnet/dotnet
```
И сохраните настройку **This computer** (чтобы было глобально).
## 3) Уберите из окружения ссылки на `~/.dotnet`
Если раньше добавляли их вручную, почистите `~/.zshrc` (и при наличии `~/.zprofile`, `~/.zshenv`):
```bash
# Создадим бэкап и удалим строки с .dotnet/DOTNET_ROOT
cp ~/.zshrc ~/.zshrc.bak.$(date +%Y%m%d-%H%M%S)
sed -i '' '/\.dotnet/d;/DOTNET_ROOT/d' ~/.zshrc
# Перезапустим шелл
exec zsh -l
```
## 4) Контроль, что теперь всё смотрит на системный SDK
```bash
which dotnet # обычно /usr/local/share/dotnet/dotnet (или /usr/local/bin/dotnet -> .../share/dotnet/dotnet)
dotnet --version # 9.0.x
dotnet --info | grep 'Base Path' # .../usr/local/share/dotnet/sdk/9.0.1xx
```
В Rider откройте встроенный терминал и повторите команды — вывод должен совпадать.
> Если используете «пинning» SDK через `global.json`, убедитесь, что там указана 9.0.100+:
>
> ```json
> { "sdk": { "version": "9.0.100", "rollForward": "latestFeatureBand" } }
> ```
## 5) Безопасно удалите `~/.dotnet`
⚠️ Это удалит также глобальные инструменты (dotnet **global tools**) из `~/.dotnet/tools`. Сначала посмотрите, нет ли важных:
```bash
dotnet tool list -g
```
Если есть — выпишите их, чтобы потом переустановить.
Теперь удаление:
```bash
rm -rf ~/.dotnet
```
---
## Частые «подводные камни»
- **Global tools**: после удаления `~/.dotnet` их не будет видно. Переустановите при необходимости:
```bash
dotnet tool install -g <tool-id>
```
- **Старые переменные окружения**: оставшийся `DOTNET_ROOT=$HOME/.dotnet` может мешать. Убедитесь, что его нет (`printenv | grep DOTNET_ROOT`).
- **Несовпадение в Rider**: если после удаления IDE жалуется на CLI — снова укажите путь `/usr/local/share/dotnet/dotnet`.
Готово: теперь у Вас «стандартный» сетап — один системный SDK (.NET 9) для терминала, Rider и CI, без дублирования в `~/.dotnet`.