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

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

有更好的方法吗?


当前回答

我们最近上传了一个免费Visual Studio扩展的测试版,它为您提供了这些功能。

查看Visual Studio Gallery:Gallery下载

其他回答

或者简单地,复制所有代码,用所需的名称打开一个新项目,然后粘贴代码。运行调试,然后删除上一个项目。完成!

这对我有用!

我最近正在与VS2022一起开发.Net 6项目。我需要将模板服务重命名为UserMicroservice。

.Net 6为您改变了大部分内容。如AssemblyNames和NameSpaces。此外,它还会自动更改.sln中的ProjectName引用。因此,这个答案将真正帮助您无障碍地重命名服务。

因此,我遵循了以下步骤:

在Visual Studio中打开解决方案并执行以下步骤:

我通过右键单击将解决方案重命名为UserServiceSolution。通过右键单击解决方案中的所有项目来重命名它们。如TemplateService到UserService。在一个特定的项目中,我搜索了名称空间,如:namespace TemplateService,并全部替换为名称空间UserService。在每个项目中执行此步骤。还将使用TemplateService改为使用UserService。打开launchsettings.json,并重命名与旧服务相关的任何内容,因为我在launchsettings.json的配置文件中很少看到这些内容。为了确定,请检查您的启动文件和program.cs文件,我没有对它们进行任何更改。

关闭Visual Studio中的解决方案并执行以下步骤:

关闭解决方案,然后打开文件资源管理器。将我的所有项目文件夹从TemplateService重命名为UserService。在记事本/记事本++中打开.sln,并且必须更改文件夹结构名称。就像对于特定项目一样,我应该给出正确的.csproj路径。如图所示,我需要将TemplateService重命名为UserService。

在Visual Studio中打开解决方案。在Visual Studio代码中加载解决方案后,将立即加载大部分依赖项。你准备好了。

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

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

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

参见链接文章中的第3项。

关闭解决方案和IDE。在Windows资源管理器中:将目录名更改为新名称。在Windows资源管理器中:使用文本编辑器打开.sln文件。将目录名更改为新名称并保存。重新启动IDE并从菜单“文件”打开解决方案→ “最近使用的文件”菜单(如果未自动启动)。在解决方案资源管理器中单击项目文件夹,并在底部的财产中检查路径属性。它现在将引用新的项目文件夹。

这对我有用。

我经常遇到在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