我当前重命名项目文件夹的解决方案是:

从解决方案中删除项目。在Visual Studio外部重命名文件夹。将项目重新添加到解决方案中。

有更好的方法吗?


当前回答

在anderjanmyr的回答中,首先重命名项目更容易。

重命名项目。关闭解决方案(保存)。在Visual Studio外部重命名文件夹。打开解决方案,忽略警告。浏览所有不可用的项目,并将属性“文件路径”设置为项目文件的新位置,即someproject.csproj。重新加载项目。

此外,执行这些步骤后,您可能需要将其他引用重命名为旧项目名称。

在项目财产中,更新程序集名称和默认命名空间。

这将更新项目文件中的以下内容。。。

<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>

…并将消除错误“命名空间与文件位置不对应,应为:'SomeProjectName'”

重命名根命名空间(如果您有ReSharper,请右键单击命名空间并转到Refactor->Rename)。

更改AssemblyInfo.cs中旧项目名称的所有引用。

其他回答

对于那些使用Visual Studio+Git并希望保留文件历史记录(同时重命名项目和/或解决方案)的用户:

关闭Visual Studio在.gitignore文件中,使用这些路径的重命名版本复制要重命名的项目的所有忽略路径。使用Git move命令如下:git mv<old_folder_name><new_folder_name>有关其他选项,请参阅文档:https://git-scm.com/docs/git-mv在.sln文件中:找到定义项目的行并更改路径中的文件夹名称。该行应类似于:项目(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“<项目名称>”,“<项目路径>\<项目>.csproj”打开Visual Studio,右键单击项目→ 重命名然后,重命名名称空间。我读到ReSharper对此有一些选择。但简单的查找/替换为我完成了任务。删除旧的.gitignore路径。

还有另一种方法,使用*.sol,*csproj文件。

打开解决方案文件。搜索要更改的*.csproj。它将如下(相对于*.sol文件):项目(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“Shani.Commands.Impl”,“Shani.Orders.Impl\Shani.Commands.Impl.csproj”,“{747CFA4B-FC83-419A-858E-5E2DE2B948E}”只需将第一部分更改为新的目录,例如:Impl\Shani.Commands.Impl\Sani.Commands.Impl.cspoj当然,不要忘记将整个项目移动到该目录。

其他答案提供了很多关于如何做的细节。不过,这里有一个快捷方式,可以为您节省一些工作:

重命名项目文件夹重命名.csproj文件大规模替换解决方案中所有文件中的项目名称(我使用GrepWin,它有一个方便的GUI和预览)

这样,您就不必在Visual Studio GUI中烦琐地工作了。您也可以通过这种方式修复名称空间。您可以使用源代码控制来验证更改(例如,打开TortoiseGitCommit并查看更改)。

如果项目当前正在运行,则无法重命名文件夹

停止应用程序Shift+F5从解决方案资源管理器重命名文件夹(右键单击>重命名或F2)

更简单的解决方案如下:

右键单击项目并将其重命名。(可选)打开项目的属性设置并修改程序集名称(以及可选的默认命名空间)以使用新的项目名称。(可选)在源文件中选择命名空间名称,右键单击并选择Refactor/Rename,以将命名空间全局重命名为新项目名称。(可选)打开AssemblyInfo.cs文件并更改程序集名称以匹配。保存并关闭解决方案。使用Windows资源管理器,将项目文件夹重命名为新名称。在文本编辑器中打开SLN文件,找到对项目路径的一个引用,并将其更改为使用新的文件夹名称。

需要四个步骤,但建议七个步骤。在一天结束时,尽管项目已完全重命名。从技术上讲,项目的文件夹名称不必与项目本身匹配,因此即使是该步骤也是可选的,但如果它们不匹配,可能会令人困惑。程序集和命名空间名称也是如此。