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

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

有更好的方法吗?


当前回答

我经常遇到在VisualStudio中重命名项目并编辑文件夹名、项目名和.sln文件以实现这一点的问题。我刚刚写了一个VBScript脚本来完成这一切。您必须小心选择要替换的字符串。

您只需将.vbs文件与解决方案的.sln文件放在同一目录中即可。

' Script parameters'
Solution = "Rename_Visual_Studio_Project" '.sln'
Project = "Rename_Visual_Studio_Project" '.csproj'
NewProject = "SUCCESS"

Const ForReading = 1
Const ForWriting = 2

Set objFso = CreateObject("Scripting.FileSystemObject")
scriptDirr = objFso.GetParentFolderName(wscript.ScriptFullName)

' Rename the all project references in the .sln file'
Set objFile = objFso.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForReading)
fileText = objFile.ReadAll
newFileText = Replace(fileText, Project, NewProject)
Set objFile = objFSO.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForWriting)
objFile.WriteLine(newFileText)
objFile.Close

' Rename the .csproj file'
objFso.MoveFile scriptDirr + "\" + Project + "\" + Project + ".csproj", scriptDirr + "\" + Project + "\" + NewProject + ".csproj"

' Rename the folder of the .csproj file'
objFso.MoveFolder scriptDirr + "\" + Project, scriptDirr + "\" + NewProject

其他回答

在文本编辑器中打开.sln,然后在下面的行中将<FolderName>更改为新的文件夹名称项目(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“Ricky”,“\.csproj”,“{021CC6B0-8CFB-4194-A103-C19AF869D965}”

对于那些使用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路径。

这在Visual Studio 2015中很简单(可能适用于旧版本)

在解决方案资源管理器中,右键单击主解决方案→ 重命名在解决方案资源管理器中,右键单击项目(在解决方案下)→ 重命名在解决方案资源管理器中,双击或右键单击财产→ 转到应用程序选项卡,重命名程序集名称和默认名称空间以匹配。如果还希望重命名命名空间,请打开一个类文件。右键单击名称空间→ 重命名。。。。这将在整个项目中搜索并替换对命名空间的所有引用。关闭项目→ 重命名项目文件夹。在记事本中编辑.sln文件,并将路径更改为csproj,即fu\bar.csproj→ bar\bar.csproj。

当必须创建新项目,并且您希望使用与项目名称不同的项目文件夹名称时,也会出现类似的问题。

创建新项目时,它将存储在

./path/to/pro/ject/YourProject/YourProject.**proj

假设您希望将其直接保存在ject文件夹中:

./path/to/pro/ject/YourProject.**proj

我的解决方法是以路径的最后一部分作为名称创建项目,这样就不会创建额外的目录:

./path/to/pro/ject/ject.**proj

当您现在从Visual Studio中重命名项目时,无需离开Visual Studio即可实现目标:

./path/to/pro/ject/YourProject.**proj

这种方法的缺点是,还必须调整默认名称空间和Output二进制文件的名称,并且必须更新项目模板中包含的所有文件中的名称空间。

我已经做了很多次了。能够重新调整现有项目的用途,但能够重命名名称空间、文件和文件夹(包括文件/目录名)中的文本,这非常有用。

从根文件夹开始使用递归查找和替换意味着重命名不会中断到解决方案文件和项目引用中的项目的链接。

为此,我创建了一个项目来实现这一点。该应用程序还努力忽略版本控制文件夹,如.git、.svn和.vs设置文件。更多信息请参阅自述文件。

https://github.com/garethrbrown/vs-project-rename