1.

Visual Studio プロジェクト削除完全手順(Remove vs エクスプローラ削除、.sln 編集、Git 追跡解除)

編集
この記事の要点
  • Solution Explorer の Remove = ソリューションから外すだけ(ファイル本体は残る)
  • Delete(VS 上)= ソリューションから外し、ファイルもごみ箱へ移動
  • 完全に消すには VS を閉じてエクスプローラ削除 + .sln 編集 が確実
  • Git 管理下なら git rm -r MyProject/ でリポジトリからも削除
  • 他プロジェクトから参照されていると ビルドエラーになる → References を先にクリーンアップ
  • 消したのに復活する場合は.vs/ キャッシュVS の最近のプロジェクト MRUを消す

Visual Studio プロジェクト削除の 3 つの選択肢

操作動作用途
Solution Explorer → 右クリック → Removeソリューションから外す(ファイル本体は残る)後で別ソリューションで使う
Solution Explorer → 右クリック → Deleteファイルごとごみ箱へ完全に捨てたい
VS を閉じてエクスプローラ削除強制削除(.vs / .suo もまとめて消せる)VS が消せないと言うとき

標準手順: Solution Explorer から削除

  1. Solution Explorer でプロジェクトを右クリック
  2. Remove(ソリューションから外す) or Delete(完全削除)を選択
    • Remove のショートカット: Delete キー
    • Delete のショートカット: Shift + Delete
  3. 確認ダイアログで OK

Remove と Delete の違い:

Solution: MyApp.sln
├── ProjectA (削除したい)        ← .sln から行を消す + 物理ファイルどうするか
├── ProjectB
└── ProjectC

Remove:
  - .sln から ProjectA の行を削除
  - C:\src\MyApp\ProjectA\ フォルダはそのまま残る
  - 別ソリューションで再利用可能

Delete:
  - .sln から ProjectA の行を削除
  - C:\src\MyApp\ProjectA\ フォルダをごみ箱へ
  - 復元はごみ箱から

削除前にやるべき: 参照クリーンアップ

プロジェクト B が プロジェクト A を参照していたら、A を消すと B がビルドエラーになります。先に参照を外しておきます。

1. Solution Explorer でプロジェクト B を展開
2. References / Dependencies を展開
3. ProjectA への参照を右クリック → Remove
4. 必要なら ProjectA の機能をローカルコピーしておく
5. その後 ProjectA を削除

VS を閉じてエクスプローラから完全削除

# 1) Visual Studio を完全終了
Get-Process devenv -ErrorAction SilentlyContinue | Stop-Process -Force

# 2) プロジェクトフォルダを削除
$proj = 'C:\src\MyApp\ProjectA'
Remove-Item $proj -Recurse -Force

# 3) .sln から該当行を削除(テキストエディタで開く)
# Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectA\ProjectA.csproj", "{...}"
# EndProject
# この 2 行を削除

# Global セクションの GUID 参照も削除
# Project("{...}").Debug|Any CPU.ActiveCfg = ...
# Project("{...}").Debug|Any CPU.Build.0 = ...
# (該当 GUID の行をすべて削除)

# 4) IDE キャッシュもクリア
Remove-Item C:\src\MyApp\.vs -Recurse -Force -ErrorAction SilentlyContinue

.sln ファイルの構造(手動編集用)

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1

Project("{FAE04EC0-...}") = "ProjectA", "ProjectA\ProjectA.csproj", "{AAA-GUID-AAA}"
EndProject
Project("{FAE04EC0-...}") = "ProjectB", "ProjectB\ProjectB.csproj", "{BBB-GUID-BBB}"
EndProject

Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {AAA-GUID-AAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU    ← ProjectA 削除時はこの行も消す
        {AAA-GUID-AAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {BBB-GUID-BBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    EndGlobalSection
EndGlobal

Git 管理下のプロジェクト削除

# Visual Studio から Delete した後でも Git は変更を追跡する
git status
# deleted: ProjectA/...
# modified: MyApp.sln

# まとめてコミット
git add -A
git commit -m "Remove ProjectA from solution"

# 別解: git rm でフォルダごと削除(VS Delete を介さず)
git rm -r ProjectA/
# .sln は手動で編集してからコミット

# 履歴から完全に消したい場合(重要: 公開リポでは要相談)
git filter-repo --path ProjectA --invert-paths
# または BFG Repo-Cleaner
java -jar bfg.jar --delete-folders ProjectA
git push --force-with-lease

削除したのに残るパターン

症状原因対処
VS 起動時にエラー: project not found.sln にまだ参照が残っている.sln をテキスト編集
最近のプロジェクト一覧に残るMRU が保持「最近のプロジェクト」右クリック → 削除
IntelliSense にゴーストが出る.vs/ キャッシュ.vs フォルダ削除
NuGet キャッシュに残るpackages.lock.jsondotnet nuget locals all --clear
ビルドサーバーに残るCI キャッシュCI のキャッシュをクリア

FAQ

Q: Unload Project と Remove の違い
A: Unload は一時的に読み込まない(ファイルは残るし .sln 内の参照も残る)。Remove は .sln から完全に外す。デバッグや一時的なビルド時短に Unload を使う。

Q: 削除後にビルドが通らない
A: 他プロジェクトの References に残骸あり。dotnet build -v normal でエラー詳細を確認 → 参照削除 → dotnet restore

Q: フォルダだけ消した後、復元したい
A: ごみ箱にあれば戻す。Git 管理下なら git checkout HEAD -- ProjectA

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. プロジェクトの削除方法
  2. Blueprintでプロジェクト全体で共有できるStatic定数の定義方法
  3. プロジェクトを多言語化する方法