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

时间:2008-10-17 06:47:46

标签: visual-studio directory projects-and-solutions

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

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

还有更好的方法吗?

38 个答案:

答案 0 :(得分:694)

  

TFS用户:如果您使用的源代码管理要求您在重命名文件/文件夹之前对其进行警告,请查看 this answer instead < / strong>涵盖了所需的额外步骤。


在visual studio中重命名项目的文件夹文件.*proj)和显示名称

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

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

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

  1. 装配
  2. 默认/根名称空间
  3. 现有文件的命名空间(使用Visual Studio中的重构工具或ReSharper不一致的命名空间工具)
  4. 另请考虑修改以下assembly attributes的值:

    1. AssemblyProductAttribute
    2. AssemblyDescriptionAttribute
    3. AssemblyTitleAttribute
    4. 您可能希望vote for the Visual Studio team to automate this procedure

答案 1 :(得分:84)

使用* .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. 只需将第一部分更改为新的指南,例如:

    Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj

  5. 当然不要忘记将整个项目移动到该目录

  6. 玩得开心。

答案 2 :(得分:72)

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

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

答案 3 :(得分:48)

男人,我有没有为此而挣扎。遗憾的是,在Visual Studio中没有单击解决方案,但如果您正在运行 Visual Studio 2012 ,并且您的项目受 Team Foundation Server 的源代码管理,这是我如何让它工作,同时保持源历史:

(请务必阅读下面的@ mjv评论,因为他注意到您可以跳过步骤5-10)

  1. 确保您已签入所有更改,因此您没有待处理的更改。
  2. 右键单击并选择删除
  3. ,从解决方案中删除项目
  4. 现在,在Windows资源管理器中,重命名项目文件夹。
  5. 返回Visual Studio,在解决方案资源管理器中,右键单击解决方案并选择添加 - &gt; 现有项目。选择在步骤2中删除的项目的项目文件,该文件应位于重命名的文件夹中。
  6. 现在项目已回到解决方案中,但项目似乎没有添加到源代码管理中。要解决此问题,请打开“源代码管理资源管理器”。
  7. 在源代码管理资源管理器中找到与您在步骤3中重命名的磁盘上的项目文件夹相对应的项目文件夹。
  8. 在Source Control Explorer中重命名该文件夹,使其与磁盘上的项目文件夹同名。
  9. 现在看看您的待定更改。您应该对解决方案文件进行更改并对项目文件夹进行重命名操作。
  10. 进行重建并确保所有内容都正确编译。如果您对重命名的项目有项目间引用,则需要将它们再次添加到引用它的各个项目中。
  11. 你现在应该全力以赴。去检查一切。
  12. 以上指南对我有用。如果它不适合您,请尝试完全删除本地解决方案,并删除工作区中的文件夹映射。重启Visual Studio以防万一。确保您确实从计算机中删除了整个解决方案。现在阅读解决方案映射到您的工作区并获取最新版本。现在尝试上面的步骤。如果在执行上述步骤时出现问题,则同样适用。只需在本地删除您的解决方案并获取最新的来源,您就可以使用它。

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

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

答案 4 :(得分:31)

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

Voila:)

答案 5 :(得分:26)

更简单的解决方案如下:

  1. 右键单击项目并重命名。
  2. (可选)打开项目的属性设置并修改程序集名称(以及可选的默认名称空间)以使用新项目名称。
  3. (可选)在源文件中选择命名空间名称,右键单击并选择Refactor \ Rename以将命名空间全局重命名为新项目名称。
  4. (可选)打开AssemblyInfo.cs文件并更改程序集名称以匹配。
  5. 保存并关闭解决方案。
  6. 使用Windows资源管理器将项目文件夹重命名为新名称。
  7. 在文本编辑器中打开SLN文件,找到对项目路径的一个引用,并将其更改为使用新文件夹名称。
  8. 需要4个步骤,但推荐7个步骤。尽管项目完全重命名,但在一天结束时。从技术上讲,项目的文件夹名称不必与项目本身匹配,因此即使该步骤也是可选的,但如果它们不匹配则可能会令人困惑。对于程序集和命名空间名称也是如此。

答案 6 :(得分:8)

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

  1. 重命名项目。
  2. 关闭解决方案(保存)。
  3. 在Visual Studio外部重命名文件夹。
  4. 打开解决方案,忽略警告。
  5. 浏览所有不可用的项目,并将属性“文件路径”设置为项目文件的新位置,即someproject.csproj。
  6. 重新加载项目。
  7. 此外,执行这些步骤后,您可能希望重命名对旧项目名称的其他引用。

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

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

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

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

    在AssemblyInfo.cs中更改旧项目名称的所有出现

答案 7 :(得分:8)

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

download

它将重命名项目:

  • 项目位置文件夹
  • 解决方案文件
  • 其他项目中的参考
  • 程序集名称,信息
  • 默认名称空间

答案 8 :(得分:6)

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

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

答案 9 :(得分:4)

See item 3 in linked article.

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

答案 10 :(得分:4)

使用Visual Studio 2019,我按照以下步骤使项目名称更改成功:

  1. 关闭解决方案
  2. 重命名项目文件夹以与新项目名称匹配
  3. 在记事本++类型的编辑器中打开解决方案文件,并使用新的项目名称文件夹编辑FilePath
  4. 打开解决方案,如果询问是否要从源代码管理中打开,请单击“否”
  5. 右键单击要重命名的项目,然后单击“属性”,然后在下面进行更改: 更改程序集名称, 默认程序集名称空间和 新名称的装配信息
  6. 打开任何文件并将其移动到新的命名空间,这将由所有文件完成
  7. 如果您有app.config类型的文件,请确保也将其移动到新的命名空间中
  8. 重建它可以成功运行

答案 11 :(得分: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. 就是这样!
  8. 100%测试并在我的情况下完美无瑕地工作。

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

答案 12 :(得分:3)

这就是我在 VS19 中重命名现有项目的方式。

  1. 关闭视觉工作室项目
  2. 重命名并打开驱动器上的每个项目文件夹名称
  3. 重命名每个 .csproj
  4. 打开 .sln 文件并为每个 .csproj 事件重命名项目目录前缀。
  5. 在visual studio中打开.sln文件并重建
  6. 通过浏览每个文件或使用 ReplaceAll 来更新以前的 nameSpace 引用以使用新的引用

答案 13 :(得分:2)

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

1)关闭Visual Studio

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

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

git mv <old_folder_name> <new_folder_name>

有关其他选项,请参见文档:https://git-scm.com/docs/git-mv

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

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"

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

6)之后,重命名命名空间。 我了解到,resharper为此提供了一些选择。 但是简单的查找/替换为我完成了工作。

7)删除旧的.gitignore路径

答案 14 :(得分:2)

2017年对我有用的东西:

  • 关闭解决方案VS
  • 重命名解决方案中的项目目录。
    • (在源代码管理中进行更改-在我的情况下为git)
  • 在文本编辑器(VS2017外部)中编辑sln文件,更改目录名称。
  • 在VS中重新打开解决方案

上面写着“ 重新添加项目”之类的字样,我重建了所有内容,一切都很好。

答案 15 :(得分:2)

虽然这个问题已经得到解答,但我想分享一下解决这个问题的方法。我经常遇到在VS中重命名项目并编辑文件夹名称,项目名称和.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

答案 16 :(得分:2)

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

有关当前版本的信息,请访问Visual Studio Project Renamer Infos

现在可以从Visual Studio Project Renamer Download Page

下载Latests版本

非常感谢您的反馈。

答案 17 :(得分:2)

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

答案 18 :(得分:1)

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

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

答案 19 :(得分:1)

  1. 重命名解决方案中的项目和项目文件夹

  2. 从解决方案中删除项目

  3. 将现有项目添加到解决方案(您重命名的项目)

  4. 它对我有用。 TFS还将跟踪新项目。

答案 20 :(得分:1)

我不得不做很多次。能够重新调整现有项目的用途,但是能够重命名名称空间,文件和文件夹中的文本,这确实很有用。从根文件夹开始使用递归查找和替换意味着重命名不会破坏解决方案文件和项目引用中项目的链接。

为此,我创建了一个项目来完成此任务。该应用程序还努力忽略版本控制文件夹,例如.git,.svn和.vs设置文件。自述文件中的更多信息。

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

Example

答案 21 :(得分:1)

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

答案 22 :(得分:1)

这在 Visual Studio 2019 中对我来说效果很好。

  1. 简单地重命名解决方案,Visual Studio 中的项目 照常点击文件名。
  2. 重命名 Visual Studio 中的命名空间。
  3. 重命名主项目页面上的所需元素(发布位置、应用程序、默认命名空间等)。正如正确指出的那样,这对文件夹没有任何作用,但它会重命名项目文件并使所有内容在 Visual Studio 中保持联系。
  4. 关闭 Visual Studio。
  5. 重命名文件夹。
  6. 打开 Visual Studio 并回复“否”以从源代码管理中获取项目。
  7. 删除已卸载的项目引用。
  8. 使用从解决方案添加现有项目将每个项目添加回。这将所有内容和为我构建的项目联系在一起。

请评论并更正以上任何不起作用的内容。

答案 23 :(得分:1)

嗯,我按照我的方式做到了

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

答案 24 :(得分:1)

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

答案 25 :(得分:0)

转到.sln文件,右键单击,使用Notepad ++(或任何编辑器; Notepad ++是最快的)打开,找到路径,然后更改它。

答案 26 :(得分:0)

我只是为自己编写一个全局dotnet工具(也考虑了git + history)解决了这个问题。

通过安装 dotnet tool install -g ModernRonin.ProjectRenamer,与renameproject <oldName> <newName>一起使用。

文档/修补程序/ PRs

https://github.com/ModernRonin/ProjectRenamer

答案 27 :(得分:0)

我试图rename Visual Studio 社区 2019 中的文件夹,但找不到。

但是,我发现while the code is running you can not change the name of the folder

答案是:

  1. 停止您的应用程序运行;
  2. 然后右键单击该文件夹,rename 名称将出现在那里。

答案 28 :(得分:0)

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

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

答案 29 :(得分:0)

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

答案 30 :(得分:0)

或者简单地

复制所有代码,然后使用所需名称打开一个新项目并粘贴代码。运行调试,然后删除以前的项目。完成!

对我有用!

答案 31 :(得分:0)

我做了以下事情:

  1. 从vs2013中重命名项目。 (可选/不需要)

  2. 将项目导出为模板。

  3. 关闭解决方案。

  4. 重新开启解决方案

  5. 从保存的模板创建项目并使用您喜欢的名称。

  6. 从解决方案资源管理器中删除上一个项目。

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

    所以 - &gt;

    1. 转到Windows资源管理器并手动将解决方案文件从旧项目文件夹复制到新项目文件夹。

    2. 关闭解决方案,然后在新项目中打开解决方案。

    3. 如果需要,将配置更改回(x64)。

    4. 使用解决方案文件夹中的旧名称删除项目的文件夹。

答案 32 :(得分:0)

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

答案 33 :(得分:0)

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

答案 34 :(得分:0)

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

答案 35 :(得分:0)

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

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

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

我们假设你想直接在ject文件夹中输入它:

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

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

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

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

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

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

答案 36 :(得分:0)

我使用VS 2013和TFS 2013.

我是这样做的:

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

答案 37 :(得分:-1)

右键单击项目&gt;性状&gt; &安培;将(名称)设置为所需名称