Visual Studio プロジェクトの物理フォルダーを安全にリネームする手順


TL;DR

  • 目的: プロジェクト論理名・アセンブリ名と物理フォルダー名をそろえて保守性を高める。
  • 手順: ソリューションを閉じる → フォルダーを OS 側でリネーム → .sln をテキスト編集 → 参照エラーを確認 → Rebuild。
  • ポイント: Git ブランチを切る/大量の “削除+追加” コミット対策、.sln 内の相対パス置換は一括検索で行う。

なぜ “フォルダーまで” 揃えるのか

  1. 可読性 – チームに新規参加した開発者が即座に構成を理解できる。
  2. ツール連携 – CI/CD スクリプトやパス依存タスクがずれない。
  3. リスク管理 – 将来のリポジトリ分割・パッケージ化の際、名前の不一致がマイグレーションコストを増やす。

事前準備チェックリスト

項目確認方法
Git 運用git status が clean/未コミットなし
VS バージョン2022 以降推奨(.sln 書式互換性)
バックアップ直前の git tag または ZIP アーカイブ
外部依存パスをハードコードした PowerShell/CI スクリプトが無いか grep

手順詳細

1. ソリューションを閉じる

  • File > Close Solution または VS を終了。
  • 理由: VS が .suo / 生成中の .vs キャッシュを保持しているとパス解決で競合が起きる。

2. エクスプローラーでフォルダーをリネーム

MyOldProject/ → MyNewProject/

Tips

  • Windows は大文字小文字を区別しないため “MyProject”→“myproject” の変更だけなら、一度別名に→Commit→再リネーム が安全。

3. .sln をテキストエディタで一括置換

  1. .sln を VSCode / Notepad++ などで開く。
  2. 以下パターンを “フォルダー名 + 拡張子” ごと置換。
- Project("{GUID}") = "MyOldProject", "MyOldProject\MyOldProject.csproj", ...
+ Project("{GUID}") = "MyNewProject", "MyNewProject\MyNewProject.csproj", ...
  1. 上書き保存。

4. ソリューションを再オープン & ビルド

  • Visual Studio で .sln を開く。
  • 黄色い三角警告 が出ていないか確認。
  • Ctrl+Shift+B で Rebuild。

Git 運用ベストプラクティス

# 1. ブランチを切る
git checkout -b rename-physical-folder

# 2. 論理名 → commit
git add MyOldProject.csproj
git commit -m "Rename logical project name (MyNewProject)"

# 3. 物理フォルダー → commit
git mv MyOldProject MyNewProject
git commit -m "Rename project folder to MyNewProject"

# 4. .sln 更新 → commit
git add *.sln
git commit -m "Fix solution paths after folder rename"
  • コミットを分割すると git blame で歴史が追いやすい。
  • pull request にすると CI が新パスで通るか事前確認できる。

ありがちな落とし穴と対策

症状原因対処
CS0246 名前空間が見つからないDefault namespace 未変更Project > Properties > Application で修正
NuGet パッケージが復元失敗packages.config 固定パスPackageReference へ移行を検討
CI でビルドこけるYAML 内のハードコードパス$(ProjectDir) マクロ/相対パスに置換

まとめ

  • フォルダー名の変更は VS だけでは完結しない→ OS でリネーム + .sln 手動編集が必須。
  • Git 履歴を汚さない ためにコミットは論理名変更と物理名変更で分ける。
  • CI/CD・スクリプトも忘れずテスト – 名前依存のタスクは再チェック。

この手順を踏めば、論理名・アセンブリ名・物理フォルダー名が完全に一致し、長期運用でも迷子にならないクリーンなリポジトリが手に入ります。

訪問数 25 回, 今日の訪問数 1回

C#,VisualStudio

Posted by hidepon