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

从解决方案中删除项目。在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路径。

经验证的Visual Studio扩展for Data Tools for Business Intelligence(SSDT-BI 2013)解决方案:

将Project文件夹移动到其新位置(暂时不重命名任何内容)在解决方案资源管理器中,重命名项目/解决方案。关闭(并保存)新重命名的项目。重命名项目的文件夹和.sln文件。使用文本编辑器打开新重命名的项目解决方案文件(.sln)(我使用了Notepad++)在第6行中,您将看到:“Project{fdjfksdk4387!…}=”OLDPROJECT“,”OLDFOLDER\OLDPROJECT.rptproj“。使用步骤4中使用的新名称重命名所有内容。(即…=“NEWPROJECT”,“NEWFOLDER\NEWPROJECT.rptproj”…)就是这样!

它经过了100%的测试,在我的案例中运行得非常完美。

注意:我无法确认它是否适用于不同的项目模板和其他Visual Studio版本。一如既往,事先备份所有内容。

我最近正在与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代码中加载解决方案后,将立即加载大部分依赖项。你准备好了。

TFS用户:如果您使用的源代码管理要求您在重命名文件/文件夹之前警告它,请查看此答案,其中包含了所需的额外步骤。


要在Visual Studio中重命名项目的文件夹、文件(.*proj)和显示名称,请执行以下操作:

关闭解决方案。在Visual Studio外部重命名文件夹。(如果使用源代码管理,请在TFS中重命名)打开解决方案,忽略警告(如果要求从源代码管理加载项目,请回答“否”)。浏览所有不可用的项目。。。打开项目的财产窗口(高亮显示项目并按Alt+Enter或F4,或右键单击>财产)。将属性“文件路径”设置为新位置。如果属性不可编辑(如在Visual Studio 2012中),则直接在另一个编辑器(如Notepad++)中打开.sln文件,并更新其中的路径。(您可能需要首先在TFS等中签出解决方案)重新加载项目-右键单击>重新加载项目。通过高亮显示项目并按F2键,或右键单击>重命名,更改项目的显示名称。

注意:其他建议的解决方案涉及删除项目,然后将其重新添加到解决方案中,这将破坏项目引用。

如果执行这些步骤,则还可以考虑重命名以下内容以匹配:

装配默认/根命名空间现有文件的命名空间(使用Visual Studio中的重构工具或ReSharper的不一致命名空间工具)

还要考虑修改以下程序集属性的值:

程序集产品属性AssemblyDescriptionAttribute程序集标题属性

我刚刚为自己编写了一个全球网络工具(也考虑了git+历史)解决了这个问题。

通过安装dotnet工具安装-g ModernRonin.ProjectRenamer,用于重命名项目<oldName><newName>。

文件/加油/PR

https://github.com/ModernRonin/ProjectRenamer