Visual Studio プロジェクトの物理フォルダーを安全にリネームする手順
目次
TL;DR
- 目的: プロジェクト論理名・アセンブリ名と物理フォルダー名をそろえて保守性を高める。
- 手順: ソリューションを閉じる → フォルダーを OS 側でリネーム → .sln をテキスト編集 → 参照エラーを確認 → Rebuild。
- ポイント: Git ブランチを切る/大量の “削除+追加” コミット対策、.sln 内の相対パス置換は一括検索で行う。
なぜ “フォルダーまで” 揃えるのか
- 可読性 – チームに新規参加した開発者が即座に構成を理解できる。
- ツール連携 – CI/CD スクリプトやパス依存タスクがずれない。
- リスク管理 – 将来のリポジトリ分割・パッケージ化の際、名前の不一致がマイグレーションコストを増やす。
事前準備チェックリスト
項目 | 確認方法 |
---|---|
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 をテキストエディタで一括置換
- .sln を VSCode / Notepad++ などで開く。
- 以下パターンを “フォルダー名 + 拡張子” ごと置換。
- Project("{GUID}") = "MyOldProject", "MyOldProject\MyOldProject.csproj", ...
+ Project("{GUID}") = "MyNewProject", "MyNewProject\MyNewProject.csproj", ...
- 上書き保存。
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回
ディスカッション
コメント一覧
まだ、コメントがありません