[[Обновление .csproj файлов|Вернуться назад]]
Если Unity перестаёт автоматически регeнerировать `.csproj`/`.sln`, есть несколько проверенных способов «заставить» её это сделать — от самых простых до автоматизируемых в Editor-скриптах. Ниже перечислены варианты; выбирайте тот, который удобнее в Вашем рабочем процессе.
> Перечислены те способы, о которых я знаю лично и могу подтвердить работоспособность.
---
### 1. Кнопка в настройках Unity
1. **Edit → Preferences… → External Tools**
2. Нажмите **Regenerate project files** (в версиях до 2020 года пункт назывался _Generate all .csproj files_).
3. Unity пересоздаст все `.csproj` и `.sln`, учитывая текущие Assembly Definition Files, плагины и пакеты.
> **Производительность:** операция не запускает полную переимпорт-компиляцию проекта, а только пересчитывает ссылки, поэтому выполняется за секунды
---
### 2. Быстрая «перезагрузка» через правку любого скрипта
- Любое сохранение `.cs` в **Assets** обычно триггерит генерацию.
- Если этого не происходит, проверьте:
- отключён ли **Auto Refresh** (_Preferences → General_);
- нет ли ошибок компиляции, блокирующих процесс (см. Console).
Подробнее о [[Automatically refresh assets in Unity]]
---
### 3. Принудительное обновление через фокус окна
- Удалите вручную все `.csproj`, `.sln` и `.csproj.DotSettings*` в корне проекта.
- Вернитесь в Unity — при первом получении фокуса Editor пересоздаст файлы.
- Подходит, когда нужно «обнулить» настройки Rider/VS.
---
### 4. Editor-скрипт для команды в меню
Подробнее о [[CodeEditor.CurrentEditor.SyncAll()]]
```csharp
#if UNITY_EDITOR
using UnityEditor;
public static class CsprojTools
{
[MenuItem("Tools/Regenerate .csproj")]
public static void Regenerate()
{
// Метод из внутреннего API Unity
CodeEditor.CurrentEditor.SyncAll();
AssetDatabase.Refresh(); // Обновление базы данных ассетов Unity
}
}
#endif
```
- После компиляции появится пункт **Tools → Regenerate .csproj**.
- Можно вызывать через CLI:
```bash
unity -quit -batchmode -projectPath "<path>" -executeMethod CsprojTools.Regenerate
```
Полезно в CI/CD.