如何从Visual Studio中重命名项目文件夹?

问题描述 投票:617回答:32

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

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

有没有更好的方法?

visual-studio directory projects-and-solutions
32个回答
706
投票

TFS用户:如果您使用的源代码控制要求您在重命名文件/文件夹之前对其进行警告,请查看this answer instead,其中包含所需的额外步骤。


要在Visual Studio中重命名项目的文件夹,文件(.*proj)和显示名称:

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

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

如果您执行这些步骤,那么您可能还会考虑重命名以下内容以匹配:

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

还要考虑修改以下assembly attributes的值:

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute

4
投票

download

  1. 关闭解决方案和IDE。
  2. 在资源管理器中:将目录名称更改为新名称。
  3. 在资源管理器中:使用文本编辑器打开.sln文件。
  4. 将目录名称更改为新名称并保存。
  5. 如果没有自动启动,请重新启动IDE并从“文件”,“最近的文件”菜单中打开解决方案。
  6. 单击Solution Explorer的Project文件夹,然后检查底部属性中的path属性。它现在将引用新项目文件夹。

它对我有用。


4
投票

经验证的商业智能数据工具Visual Studio扩展解决方案(SSDT-BI 2013):

  1. 将Project文件夹移动到新位置(不要重命名任何内容)
  2. 在Solution Explorer中,重命名Project / Solution。
  3. 关闭(并保存)新重命名的项目。
  4. 重命名项目的文件夹和.sln文件。
  5. 使用文本编辑器打开新重命名的项目解决方案文件(.sln)(我使用的是Notepad ++)
  6. 在第6行,您将看到:“Project {fdjfksdjk4387!...} =”OLDPROJECT“,”OLDFOLDER \ OLDPROJECT.rptproj“。使用步骤4中使用的新名称重命名所有内容。(即... =”NEWPROJECT “,”NEWFOLDER \ NEWPROJECT.rptproj“......)
  7. 而已!

100%测试并在我的情况下完美地工作。

注意:无法确认它是否在不同的项目模板和/或Visual Studio版本下工作。一如既往,事先备份一切。


3
投票

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

1)关闭Visual Studio

2)在.gitignore文件中,复制要使用这些路径的重命名版本重命名的项目的所有忽略路径。

3)使用git move命令,如下所示:

See item 3 in linked article. 

有关其他选项,请参阅文档:git mv <old_folder_name> <new_folder_name>

4)在.sln文件中:找到定义项目的行并更改路径中的文件夹名称。该行应该类似于:

https://git-scm.com/docs/git-mv

5)打开Visual Studio,右键单击项目 - >重命名

6)然后重命名命名空间。我读到resharper有一些选择。但简单的查找/替换为我做了这项工作。

7)删除旧的.gitignore路径


2
投票

@ andersjanmyr的解决方案:您可以按Alt + Enter打开不可用项目的属性页面,并在那里设置“文件路径”属性;因为它在不可用项目的右键单击 - 上下文菜单中不可用(在VS2008中)。


2
投票

我写了一个小工具,可以自动完成所有这些步骤。现在也支持subversion。

有关当前版本的信息可以在这里找到Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"

最新版本现在可以从qazxsw poi下载

反馈非常感谢。


2
投票

虽然这个问题已经得到解答,但我想分享我解决这个问题的方法。我经常遇到在VS中重命名项目并编辑文件夹名称,项目名称和.sln文件以实现此目的的相同问题。我刚写了一个完成所有这些的VBScript。您必须小心选择要替换的字符串。

编辑:您只需将.vbs文件放在与解决方案的.sln文件相同的目录中。

Visual Studio Project Renamer Infos

2
投票

2017年对我有用的是:

  • 关闭解决方案VS.
  • 重命名解决方案中的项目目录。 (推动源代码管理的变化 - 在我的情况下是git)
  • 在文本编辑器中编辑sln文件(在VS2017之外)更改目录名称。
  • 在VS中重新打开解决方案

它说“重新添加项目”之类的东西,我重建了一切,一切都很好。


1
投票

注意:此修复程序适用于Visual Studio 2008,但应在此处运行。

  1. 使用Windows资源管理器,将解决方案文件夹(父文件夹和子文件夹)重命名为新的解决方案名称。
  2. 删除位于父文件夹中的Visual Studio Project Renamer Download Page文件。
  3. 在Visual Studio中,选择“文件”|“打开项目”。
  4. 钻入刚刚重命名的新文件夹,然后打开.csproj文件(位于子文件夹中)。
  5. 右键单击项目名称并将其重命名为您想要的名称。 (应与步骤1中的文件夹名称相同。)
  6. 选择文件|关闭解决方案。将出现一个对话框,询问您是否要保存对'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 文件的更改。单击是。
  7. 在“将文件另存为”对话框中,指向新重命名的PARENT文件夹,然后单击“保存”。 (注意:确保.sln文件与文件夹具有相同的名称。不是必需的,但保持一致性。)

DONE。


1
投票

使用TFS时,步骤2实际上是重命名源控件中的文件夹,然后在重新打开解决方案之前获取最新信息。


1
投票

我们最近上传了一个免费VS扩展程序的测试版,它为您完成了这些工作。看看VS画廊:.sln


89
投票

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

  1. 打开您的解决方案文件
  2. 搜索您想要更改的* .csproj
  3. 它将是这样的(相对于* .sol文件): Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
  4. 并只是将第一部分更改为新目录,例如: qazxsw poi
  5. 当然不要忘记将整个项目移动到该目录

玩得开心。


1
投票

好吧,我按照我的方式做到了

  • 关闭Visual Studio 2012
  • 在.sln下将您的子目录重命名为首选名称
  • 删除* .suo文件
  • 再次打开解决方案,修复加载的Project的任何属性以满足新的子目录名称

1
投票
  1. 在解决方案和项目文件夹中重命名项目
  2. 从解决方案中删除项目
  3. 将现有项目添加到解决方案(重命名的项目)

这个对我有用。 TFS还将跟踪新项目。


1
投票

在文本文件中打开.sln,然后在以下行中更改为新文件夹名称Project(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“Ricky”,“\。csproj”,“{021CC6B0-8CFB -4194-A103-C19AF869D965}”


1
投票

我必须这么做很多次。能够重新利用现有项目但能够重命名命名空间,文件和文件夹中的文本非常有用。使用从根文件夹开始的递归查找和替换意味着重命名不会破坏解决方案文件和项目引用中项目的链接。

为此,我创建了一个项目来做到这一点。该应用程序还努力忽略版本控制文件夹,如.git,.svn和.vs设置文件。 README中的更多信息。

.sln


0
投票

更改文件夹名称后,在记事本中打开.sln文件并将路径更改为新路径。


0
投票

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

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

Gallery Download

我们假设你想直接在https://github.com/garethrbrown/vs-project-rename文件夹中:

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

我完成此任务的解决方法是创建项目,并将路径的最后一部分作为其名称,以便它不会创建其他目录:

ject

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

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

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


0
投票

我使用VS 2013和TFS 2013。

我是这样做的:

  1. 打开Visual Studio,无需打开解决方案本身,并使用Source Control Explorer查找和重命名项目的文件夹
  2. 双击源代码管理资源管理器中的解决方案文件以打开解决方案。
  3. 您会收到一个问题:“最近已将项目添加到此解决方案中。您是否希望从源代码管理中获取它们?”,然后选择“是”
  4. 现在文件夹和项目结构在那里,但现在是文件,所以现在你从源代码管理中获取最新版本
  5. 尝试构建和提交更改。

0
投票

有一种更简单的方法在VS 2013 Update 1中进行了测试,适用于TFS连接的项目:

  • 打开VS但让解决方案关闭
  • 打开源资源管理器并重命名所需的文件夹(如果您尚未先关闭该解决方案,将为您关闭该解决方案)
  • 右键单击解决方案(也可以从Source Explorer)并选择签入
  • 打开解决方案,你会告诉我们已添加新项目,接受获取更改。
  • 从解决方案中删除项目并再次添加,然后签入
  • 检查内部引用是否正常

0
投票

最简单的方法是转到默认命名空间的窗口更改名称的属性,然后重命名完成


0
投票

1 - 在VS外重命名项目。 2 - 使用文本编辑器编辑your_project_name.sln,将路径重命名为新路径


78
投票

这在VS 2015中是直截了当的(可能适用于旧版本)

  1. 在Solution Explorer中,右键单击Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
  2. 在Solution Explorer中,右键单击Main solution > Rename
  3. 在解决方案资源管理器中,双击或右键单击project (under solution) > Renamegoto应用程序选项卡,重命名Properties >Assembly name以匹配。
  4. 如果您还想重命名命名空间,请打开一个类文件。右键单击Default namespace,这应该搜索并替换整个项目中对命名空间的所有引用。
  5. 关闭项目>重命名namespace > Rename...
  6. 在记事本中编辑project folder文件,更改cjproj的路径。即.sln

0
投票

我做了以下事情:

  1. 从vs2013中重命名该项目。 (可选/不需要)
  2. 将项目导出为模板。
  3. 关闭解决方案。
  4. 重新打开解决方案
  5. 从保存的模板创建项目并使用您喜欢的名称。
  6. 从解决方案资源管理器中删除上一个项目。

在这一点上,我尝试编译新的解决方案,为此我必须手动将一些资源和标题从旧项目文件夹复制到新项目文件夹。这样做直到它编译没有错误。现在,这个新项目将“.exe”文件保存到上一个文件夹。*

所以 - >

  1. 转到Windows资源管理器并手动将解决方案文件从旧项目文件夹复制到新项目文件夹。
  2. 关闭解决方案,然后从新项目中打开解决方案。
  3. 如果需要,将配置更改回(x64)。
  4. 从解决方案的文件夹中删除具有旧名称的项目文件夹。

50
投票

伙计,我有没有挣扎过这个。遗憾的是,Visual Studio中没有单击解决方案,但是如果您正在运行Visual Studio 2012并且您的项目受Team Foundation Server的源代码控制,那么我可以在保留源历史记录的同时使用它:

(请务必阅读下面的@ mjv评论,因为他指出你可以跳过步骤5-10)

  1. 确保您已签入所有更改,因此您没有待处理的更改。
  2. 通过右键单击并选择“删除”,从解决方案中删除项目。
  3. 现在,在Windows资源管理器中,重命名项目文件夹。
  4. 返回Visual Studio,在解决方案资源管理器中,右键单击解决方案,然后选择添加 - >现有项目。选择在步骤2中删除的项目的项目文件,该项目文件应位于重命名的文件夹中。
  5. 现在项目又回到了解决方案中,但项目似乎没有添加到源代码管理中。要解决此问题,请打开Source Control Explorer。
  6. 在源代码管理资源管理器中找到与您在步骤3中重命名的磁盘上的项目文件夹对应的项目文件夹。
  7. 在源代码管理资源管理器中重命名该文件夹,因此它与磁盘上的项目文件夹具有相同的名称。
  8. 现在来看看您的待定更改。您应该对项目文件夹中的解决方案文件和重命名操作进行更改。
  9. 进行重建并确保一切正确编译。如果您对重命名的项目有项目间引用,则需要将它们再次添加到引用它的各个项目中。
  10. 你现在应该全部搞定。去检查一切。

上面的指南对我有用。如果它不适合您,请尝试完全删除本地解决方案,并删除工作区中的文件夹映射。重启Visual Studio以防万一。确保您确实从计算机中删除了整个解决方案。现在阅读解决方案映射到您的工作区并获取最新版本。现在尝试上面的步骤。如果在执行上述步骤时出现问题,则同样适用。只需在本地删除您的解决方案并获取最新的源代码,您就可以使用干净的平板。

如果您仍然遇到问题,请确保在尝试上述步骤之前未在解决方案文件中手动更改任何内容,或尝试其他“技巧”。如果您更改了某些内容并将其签入,则可能需要考虑在开始搞乱项目重命名之前进行回滚。

当然,您还需要在解决方案资源管理器中重命名项目本身。您可以在上述步骤之前执行此操作,但在这种情况下,请确保在应用上述步骤之前签入该更改。您也可以在以后执行此操作,但请确保首先执行上述所有步骤,并在尝试在解决方案资源管理器中重命名项目名称之前检入更改。我不建议尝试将上述步骤与解决方案资源管理器中项目名称的重命名混合使用。它可能会工作,但我建议在2个单独的变更集中进行。


31
投票

目前,没有。实际上,您可以单击已损坏的项目节点,然后在属性窗格中查找属性“路径”,然后单击小浏览图标并选择新路径。

这是:)


28
投票

更简单的解决方案如下:

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

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


8
投票

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

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

此外,执行这些步骤后,您可能希望重命名对旧项目名称的其他引用。

在项目属性中,更新程序集名称和默认命名空间。这将更新项目文件中的以下内容......

fu\bar.csproj --> bar\bar.csproj

...并将摆脱错误“命名空间与文件位置不对应,应该是:'SomeProjectName'”

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

在AssemblyInfo.cs中更改旧项目名称的所有实例


8
投票

对于VS2017,您可以使用我的visual studio扩展

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

它将重命名项目:

  • 项目位置文件夹
  • 圆角salution
  • 参考其他项目
  • 程序集名称,信息
  • 默认命名空间

6
投票

我必须自己做(使用VS2010)。正如一些人回答的那样,最简单的步骤似乎是:

  1. 关闭VS项目。
  2. 打开.sln文件并重命名每个.csproj事件的项目目录前缀。
  3. 保存.sln文件
  4. 重命名硬盘驱动器上的实际项目文件夹目录,以匹配.sln文件中的更改。
  5. 打开.sln(在VS中)并重建
© www.soinside.com 2019 - 2024. All rights reserved.