3.

Visual Studio「指定された名前のソリューションファイルが既に存在する」の原因と対処

編集
この記事の要点
  • 原因は同じフォルダに同名 .sln(あるいは .suo / .vs/)が残っていること。多くは過去に作って削除したつもりの残骸
  • まず Visual Studio を完全に閉じてからエクスプローラで残骸を削除(VS が開いていると .suo がロックされる)
  • 削除対象: YourSolution.sln / YourSolution.suo / .vs/ フォルダ / bin/ / obj/
  • レジストリ MRUに古い参照が残ると再発 → devenv /resetuserdata でリセット
  • 回避策: 別フォルダで新規作成 → 後で右クリック「名前の変更」(このときも開いていると駄目)
  • Solution Explorer 内のリネームでは .sln ファイル名自体は変わらない(インスタンス名のみ)→ 物理ファイル名変更は手動が必要

エラーの再現条件

Visual Studio で「ソリューション名を変更」したとき、または既存ソリューションと同名で新規作成しようとしたときに出ます。

指定された名前のソリューションファイルが既に存在するため、
ソリューション名を変更できません。

(英語版)
Cannot rename the solution. A solution file with the specified
name already exists.

原因

原因確認方法対処
同フォルダに同名 .sln が残っているエクスプローラで *.sln を確認VS を閉じてから削除
.suo / .vs フォルダがロックVS が開いていないか確認VS 完全終了 → 削除
VS の最近使った項目 (MRU)「ファイル」→「最近使った項目」devenv /resetuserdata
OneDrive / Dropbox 同期遅延クラウド同期マークを確認同期完了を待つ or 同期一時停止
NTFS のロングパス(260 文字超)パス文字数を確認浅い場所に移動

対処手順(標準)

  1. Visual Studio を完全に閉じる(タスクマネージャで devenv.exe がないことを確認)
  2. 該当フォルダをエクスプローラで開く
  3. 以下を削除:
    • YourSolution.sln
    • YourSolution.suo (隠しファイル、ユーザー固有設定)
    • .vs\ フォルダ(隠し、IntelliSense キャッシュ等)
    • bin\ / obj\ (ビルド出力、再生成される)
  4. Visual Studio を再起動 → リネームしたい名前で新規作成 or リネーム

PowerShell でまとめて削除

# 対象ソリューションのフォルダに移動
cd C:\Users\foo\source\repos\MyApp

# Visual Studio が完全に閉じているか確認
Get-Process devenv -ErrorAction SilentlyContinue
# 何も返らないこと

# 残骸を一括削除
Remove-Item *.sln -Force
Remove-Item *.suo -Force
Remove-Item .vs -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item bin -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item obj -Recurse -Force -ErrorAction SilentlyContinue

# 確認
Get-ChildItem -Force

devenv /resetuserdata でユーザー設定をリセット

VS の最近使った項目(MRU)やカスタマイズが原因の場合は、ユーザー設定をリセットします。カスタマイズ(フォント / 拡張機能設定 等)も初期化されるのでバックアップ推奨。

# 管理者 PowerShell で
# (パスは VS のバージョンによって変わる - VS 2022 の例)
& "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe" /resetuserdata

# VS 2019
& "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe" /resetuserdata

# 起動メッセージが出るまで待つ → 通常起動を続行

# 完全リセット(カスタマイズもクリア)
devenv /resetsettings

ソリューションをきれいにリネームする手順

「名前の変更」よりも、新規作成 → 古いプロジェクトを取り込む方が確実です:

  1. 新フォルダで新規ソリューションを希望の名前で作成
  2. Solution Explorer → ソリューション右クリック → 「追加」→「既存のプロジェクト」
  3. 古いソリューションから .csproj / .vbproj を選んで取り込む
  4. 古い .sln 側は削除

または テキストエディタで .sln を直接編集(中身は単純なテキストファイル):

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
Project("{...}") = "MyApp", "MyApp\MyApp.csproj", "{...}"
EndProject
...

OneDrive / Dropbox 同期下での注意点

  • 同期サービスはファイルをロックすることがある → access denied で消せない
  • .vs\ など IDE が頻繁に書き換える隠しフォルダは同期から除外推奨
  • OneDrive: 右クリック「常にこのデバイス上に保持」or 「アクセスをブロック」
  • Visual Studio のソースは OneDrive 外(例: C:\src) で運用するのが安定

FAQ

Q: Solution Explorer で右クリック「名前の変更」したのに .sln ファイル名が変わらない
A: 仕様です。Solution Explorer のリネームは VS 内部表示名(ソリューション名)だけ変えます。物理ファイル名はVS を閉じてからエクスプローラで rename する必要があります。

Q: devenv /resetuserdata したら拡張機能が消えた
A: 拡張機能設定はリセットされます。拡張機能本体は残るので有効化し直すだけで OK。

Q: TFS / Git で管理されているソリューションでも同じ手順?
A: VCS でリネームする場合は、リネーム後に git mv old.sln new.sln でリネーム履歴を残すと安全。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. 【Visual Studio】Form自動生成時に「値が有効な範囲にありません」エラー
  2. トップレベルのコントロールをコントロールに追加できません。
  3. 指定された名前のソリューションファイルが既に存在するため、ソリューション名を変更できません