我目前重命名项目文件夹的解决方案是:
还有更好的方法吗?
答案 0 :(得分:694)
TFS用户:如果您使用的源代码管理要求您在重命名文件/文件夹之前对其进行警告,请查看 this answer instead < / strong>涵盖了所需的额外步骤。
在visual studio中重命名项目的文件夹,文件(.*proj
)和显示名称:
.sln
文件,然后更新其中的路径。 (您可能需要先在TFS等中签出解决方案。)注意:其他建议的解决方案涉及删除然后将项目重新添加到解决方案中将破坏项目引用。
如果您执行这些步骤,那么您可能还会考虑重命名以下内容以匹配:
另请考虑修改以下assembly attributes的值:
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
您可能希望vote for the Visual Studio team to automate this procedure。
答案 1 :(得分:84)
使用* .sol,* csproj文件还有另一种方法。
它将是这样的(相对于* .sol文件):
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
只需将第一部分更改为新的指南,例如:
Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
当然不要忘记将整个项目移动到该目录
玩得开心。
答案 2 :(得分:72)
这在VS 2015中是直截了当的(可能适用于旧版本)
Main solution > Rename
project (under solution) > Rename
Properties >
转到“应用程序”选项卡,重命名Assembly name
和Default namespace
以匹配。namespace > Rename...
这应该搜索并替换整个项目中对命名空间的所有引用。project folder
。.sln
文件,更改cjproj的路径。即fu\bar.csproj --> bar\bar.csproj
答案 3 :(得分:48)
男人,我有没有为此而挣扎。遗憾的是,在Visual Studio中没有单击解决方案,但如果您正在运行 Visual Studio 2012 ,并且您的项目受 Team Foundation Server 的源代码管理,这是我如何让它工作,同时保持源历史:
(请务必阅读下面的@ mjv评论,因为他注意到您可以跳过步骤5-10)
以上指南对我有用。如果它不适合您,请尝试完全删除本地解决方案,并删除工作区中的文件夹映射。重启Visual Studio以防万一。确保您确实从计算机中删除了整个解决方案。现在阅读解决方案映射到您的工作区并获取最新版本。现在尝试上面的步骤。如果在执行上述步骤时出现问题,则同样适用。只需在本地删除您的解决方案并获取最新的来源,您就可以使用它。
如果您仍然遇到问题,请确保您未在解决方案文件中手动更改任何内容,或尝试其他“技巧”。在尝试上述步骤之前。如果您更改了某些内容并将其签入,则可能需要考虑在开始搞乱项目重命名之前进行回滚。
当然,您还希望在解决方案资源管理器中重命名项目本身。您可以在上述步骤之前执行此操作,但在这种情况下,请确保在应用上述步骤之前签入该更改。您也可以在以后执行此操作,但请确保首先执行上述所有步骤,并在尝试在解决方案资源管理器中重命名项目名称之前检入更改。我不建议尝试将上述步骤与解决方案资源管理器中项目名称的重命名混合使用。它可能会工作,但我建议在2个单独的变更集中进行。
答案 4 :(得分:31)
目前,没有。实际上,您可以单击已损坏的项目节点,然后在属性窗格中查找属性“路径”,然后单击小浏览图标并选择新路径。
Voila:)
答案 5 :(得分:26)
更简单的解决方案如下:
需要4个步骤,但推荐7个步骤。尽管项目完全重命名,但在一天结束时。从技术上讲,项目的文件夹名称不必与项目本身匹配,因此即使该步骤也是可选的,但如果它们不匹配则可能会令人困惑。对于程序集和命名空间名称也是如此。
答案 6 :(得分:8)
在andersjanmyr的回答中,首先更容易重命名该项目。
此外,执行这些步骤后,您可能希望重命名对旧项目名称的其他引用。
在项目属性中,更新“程序集名称”和“默认名称空间”。 这将更新项目文件中的以下内容......
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
...并将摆脱错误“命名空间不对应文件位置,应该是:'SomeProjectName'”
重命名您的根命名空间(如果您有resharper,请右键单击命名空间并转到Refactor - &gt;重命名)。
在AssemblyInfo.cs中更改旧项目名称的所有出现
答案 7 :(得分:8)
答案 8 :(得分:6)
我必须自己做(使用VS2010)。正如一些人回答的那样,最简单的步骤似乎是:
答案 9 :(得分:4)
它对我有用。
答案 10 :(得分:4)
使用Visual Studio 2019,我按照以下步骤使项目名称更改成功:
答案 11 :(得分:4)
商业智能数据工具的Visual Studio扩展(SSDT-BI 2013)经过验证的解决方案:
100%测试并在我的情况下完美无瑕地工作。
注意:无法确认它是否在不同的项目模板和/或Visual Studio版本下工作。一如既往,事先备份一切。
答案 12 :(得分:3)
这就是我在 VS19 中重命名现有项目的方式。
答案 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年对我有用的东西:
上面写着“ 重新添加项目”之类的字样,我重建了所有内容,一切都很好。
答案 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,但应在此处运行。
.sln
文件。.sln
文件的更改。单击是。.sln
文件与文件夹同名。不需要,但保持一致性。)DONE。
答案 19 :(得分:1)
重命名解决方案中的项目和项目文件夹
从解决方案中删除项目
将现有项目添加到解决方案(您重命名的项目)
它对我有用。 TFS还将跟踪新项目。
答案 20 :(得分:1)
我不得不做很多次。能够重新调整现有项目的用途,但是能够重命名名称空间,文件和文件夹中的文本,这确实很有用。从根文件夹开始使用递归查找和替换意味着重命名不会破坏解决方案文件和项目引用中项目的链接。
为此,我创建了一个项目来完成此任务。该应用程序还努力忽略版本控制文件夹,例如.git,.svn和.vs设置文件。自述文件中的更多信息。
https://github.com/garethrbrown/vs-project-rename
答案 21 :(得分:1)
使用TFS时,第2步实际上是重命名源控件中的文件夹,然后在重新打开解决方案之前获取最新信息。
答案 22 :(得分:1)
这在 Visual Studio 2019 中对我来说效果很好。
请评论并更正以上任何不起作用的内容。
答案 23 :(得分:1)
嗯,我按照我的方式做到了
答案 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
答案 27 :(得分:0)
我试图rename
Visual Studio 社区 2019 中的文件夹,但找不到。
但是,我发现while the code is running you can not change the name of the folder
。
答案是:
rename
名称将出现在那里。答案 28 :(得分:0)
在VS 2013 Update 1中测试了一种更简单的方法,适用于TFS连接的项目:
答案 29 :(得分:0)
在文本文件中打开.sln,然后在以下行中更改为新的文件夹名称 Project(“ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“ Ricky”,“ \ .csproj”,“ {021CC6B0-8CFB-4194-A103-C19AF869D965}”“
答案 30 :(得分:0)
或者简单地
复制所有代码,然后使用所需名称打开一个新项目并粘贴代码。运行调试,然后删除以前的项目。完成!
对我有用!
答案 31 :(得分:0)
我做了以下事情:
从vs2013中重命名项目。 (可选/不需要)
将项目导出为模板。
关闭解决方案。
重新开启解决方案
从保存的模板创建项目并使用您喜欢的名称。
从解决方案资源管理器中删除上一个项目。
在这一点上,我尝试编译新的解决方案,为此我必须手动将一些资源和标题从旧项目文件夹复制到新项目文件夹。这样做直到它编译没有错误。现在这个新项目保存了&#34; .exe&#34;将文件发送到上一个文件夹。*
所以 - &gt;
转到Windows资源管理器并手动将解决方案文件从旧项目文件夹复制到新项目文件夹。
关闭解决方案,然后在新项目中打开解决方案。
如果需要,将配置更改回(x64)。
使用解决方案文件夹中的旧名称删除项目的文件夹。
答案 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.
我是这样做的:
答案 37 :(得分:-1)
右键单击项目&gt;性状&gt; &安培;将(名称)设置为所需名称