小编典典

在 Visual Studio 中重命名解决方案(和目录)的正确方法

all

我有一个相当复杂的 Visual Studio 解决方案(2010,但没关系),我需要重命名。

我想重命名文件夹以匹配新的解决方案名称,但我想不出一种自动重构文件夹名称的方法,并且浏览每个项目文件都会很痛苦。

有没有官方的方法可以做到这一点?或者(而且不太理想),是否有免费工具来实现这一点?


阅读 92

收藏
2022-03-14

共1个答案

小编典典

手动编辑 .sln 文件

此方法完全旨在重命名项目的目录,如在 Windows 资源管理器中查看的那样。

此方法不会遇到以下 删除/添加项目文件方法
中的问题(引用消失),但如果您的项目处于源代码控制之下,则可能会导致问题(请参阅下面的注释)。这就是为什么第 2 步(备份)如此重要的原因。

  1. 关闭 Visual Studio。
  2. 创建 .sln 文件的备份(您可以随时回滚)。
  3. 想象一下,您要将目录重命名Project1Project2.
  4. 如果不使用源代码管理,请将文件夹从Project1使用Project2Windows 资源管理器重命名。
  5. 如果使用源代码管理,请将文件夹从 重命名为 使用源Project1代码Project2管理提供的功能。这会保留文件的历史记录。例如,使用TortoiseSVN,右键单击文件,选择TortoiseSVN .. Rename.
  6. 在 .sln 文件中,使用NotePad之类的文本编辑器编辑Project1to be的所有实例。Project2
  7. 重新启动 Visual Studio,一切都会像以前一样工作,但项目位于不同的目录中。

您还可以手动查看重命名解决方案发布描述此手动过程的帖子

优点

  • 您可以使 Windows 资源管理器中的目录与解决方案中的项目名称相匹配。
  • 此方法不会 删除 其他项目对此文件的任何引用(优于 删除/添加项目文件 方法,请参阅下面的其他答案)。

警告

  • 在重命名任何内容之前将所有内容备份到 .zip 文件中很重要,因为这种方法可能会导致源代码管理出现问题。
  • 如果您的项目受源代码控制,如果您重命名源代码控制之外的文件或目录(使用 Windows 资源管理器),可能会产生问题。 如果可以的话,最好使用源代码控制框架本身重命名文件 ,以保留该文件的历史记录(在右键单击时查看上下文菜单 - 它可能具有重命名文件的功能)。

2014-11-02 更新

ReSharper 添加了一种自动化方法,可实现与上述手动方法相同的结果。如果命名空间带有蓝色波浪线下划线,请单击操作金字塔图标以:

  • 重命名命名空间以匹配 Windows 资源管理器中的目录名称,或者;
  • 在 Windows 资源管理器中重命名目录以匹配命名空间。

在第二种情况下,最后一个词定义了 Windows
资源管理器中的新目录名称,例如,如果我们将命名空间更改为ViewModel2,它将提供将文件移动到文件夹ViewModel2

但是,这不一定会更新源代码管理中的文件,因此您可能仍需要使用手动方法。

在此处输入图像描述

更新 2018-01-31

使用 Visual Studio 2008、2010、2012、2013、2015、2017 更新 1、2、3、4、5 进行测试。

2020-05-02 更新

使用 Visual Studio 2019 进行测试。

2021-11-19 更新

重新测试。仍然有效。

2022-03-14