我当前重命名项目文件夹的解决方案是:
- 从解决方案中删除项目。
- 重命名 Visual Studio 外部的文件夹。
- 将项目重新添加到解决方案中。
有没有更好的办法?
我当前重命名项目文件夹的解决方案是:
有没有更好的办法?
TFS 用户:如果您使用的源代码控制要求您在重命名文件/文件夹之前对其发出警告,那么请查看此答案,其中涵盖了所需的额外步骤。
要在 Visual Studio 中重命名项目的文件夹、文件( .*proj
) 和显示名称:
.sln
直接在另一个编辑器(例如Notepad++ )中打开该文件,然后更新那里的路径。(您可能需要先在 TFS 等中签出解决方案)注意:涉及删除项目然后将项目重新添加到解决方案的其他建议解决方案将破坏项目引用。
如果您执行这些步骤,那么您还可以考虑重命名以下内容以匹配:
还可以考虑修改以下程序集属性的值:
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
这在 Visual Studio 2015 中很简单(可能适用于旧版本)
.sln
文件,并更改csproj的路径,即→ 。fu\bar.csproj
bar\bar.csproj
还有另一种方法,使用 *.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
当然,不要忘记将整个项目移动到该目录。
伙计,我有没有为此挣扎过。不幸的是,Visual Studio 中没有一键式解决方案,但如果您正在运行Visual Studio 2012并且您的项目受Team Foundation Server的源代码控制,那么我是如何让它工作的,同时保留源代码历史记录:
(请务必阅读下面的@mjv 评论,因为他指出您可以跳过步骤 5-10)
上面的指南对我有用。如果它对您不起作用,请尝试完全删除您的本地解决方案,并删除工作区中的文件夹映射。以防万一,重新启动 Visual Studio。确保您确实从计算机中删除了整个解决方案。现在将解决方案映射到您的工作区并获取最新版本。现在尝试上述步骤。如果在执行上述步骤时出现问题,这同样适用。只需在本地删除您的解决方案并获取最新的源代码,您就会有一个全新的工作环境。
如果您仍然遇到问题,请确保您没有在解决方案文件中手动更改任何内容,或者在尝试上述步骤之前尝试其他“技巧”。如果您更改了某些内容并将其签入,您可能需要考虑回滚到开始弄乱项目重命名之前的点。
当然,您还想在解决方案资源管理器中重命名项目本身。您可以在上述步骤之前执行此操作,但在这种情况下,请确保在应用上述步骤之前签入该更改。您也可以在之后执行此操作,但请确保先执行上述所有步骤,并在尝试在解决方案资源管理器中重命名项目名称之前检查您的更改。我不建议尝试将上述步骤与解决方案资源管理器中的项目名称重命名混合使用。虽然它可能有效,但我建议在 2 个单独的变更集中进行。
目前,没有。好吧,实际上您可以单击损坏的项目节点并在属性窗格中查找属性“路径”,单击小浏览图标,然后选择新路径。
瞧 :)
更简单的解决方案如下:
有四个必需的步骤,但推荐七个。归根结底,该项目已完全重命名。从技术上讲,项目的文件夹名称不必与项目本身匹配,因此即使该步骤也是可选的,但如果它们不匹配,可能会造成混淆。程序集和命名空间名称也是如此。
在andersjanmyr 的回答中,首先重命名项目更容易。
此外,执行这些步骤后,您可能希望将其他引用重命名为旧项目名称。
在项目属性中,更新程序集名称和默认命名空间。
这将更新项目文件中的以下内容...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
...并且将摆脱错误“命名空间与文件位置不对应,应该是:'SomeProjectName'”
重命名您的根命名空间(如果您有 ReSharper,请右键单击命名空间并转到 Refactor -> Rename)。
更改AssemblyInfo.cs中所有出现的旧项目名称。
对于那些使用 Visual Studio + Git 并希望保留文件历史记录的人(重命名项目和/或解决方案的工作):
关闭 Visual Studio
在 .gitignore 文件中,使用这些路径的重命名版本复制要重命名的项目的所有忽略路径。
像这样使用 Git 移动命令:
git mv <old_folder_name> <new_folder_name>
有关其他选项,请参阅文档:https ://git-scm.com/docs/git-mv
在您的 .sln 文件中:找到定义项目的行并更改路径中的文件夹名称。该行应类似于:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
打开 Visual Studio,然后右键单击项目 →重命名
之后,重命名命名空间。
我读到ReSharper对此有一些选择。但是简单的查找/替换为我完成了这项工作。
删除旧的 .gitignore 路径。
对于 Visual Studio 2017,您可以使用我的 Visual Studio 扩展:
它将在以下位置重命名项目:
我只需要自己做这件事(使用 Visual Studio 2010)。正如一些人所回答的那样,最简单的步骤似乎是:
使用 Visual Studio 2019,我按照以下步骤使项目名称更改成功:
适用于商业智能数据工具的 Visual Studio 扩展的经过验证的解决方案 (SSDT-BI 2013):
它经过 100% 的测试,在我的情况下完美运行。
注意:我无法确认它是否适用于不同的项目模板和其他 Visual Studio 版本。与往常一样,请事先备份所有内容。
在 Visual Studio 2017 中对我有用的是:
它说类似“重新添加项目”。我重建了一切,一切都很好。
它对我有用。
我不得不这样做很多次。能够重新利用现有项目,但能够重命名命名空间、文件和文件夹中的文本(包括文件/目录名称),这非常有用。
使用从根文件夹开始的递归查找和替换意味着重命名不会破坏解决方案文件和项目引用中的项目链接。
为此,我创建了一个项目来做到这一点。该应用程序还努力忽略版本控制文件夹,例如 .git、.svn 和 .vs 设置文件。更多信息在自述文件中。
我刚刚为自己编写了一个全局 dotnet 工具(也考虑了 git+history)解决了这个问题。
通过 安装
dotnet tool install -g ModernRonin.ProjectRenamer
,与 一起使用renameproject <oldName> <newName>
。
文档/修补/公关在
这在 Visual Studio 2019 中对我来说效果很好。
请评论并纠正以上任何无效的内容。
这就是我在 VS19 中重命名现有项目的方式。
注意:此修复程序适用于 Visual Studio 2008,但它应该在这里工作。
.sln
位于父文件夹中的文件。.sln
文件的更改。单击Yes。.sln
文件与文件夹同名。不是必需的,但保持一致性。)完毕。
我编写了一个小工具,可以自动执行所有这些步骤。它现在还支持Subversion。
可以在Visual Studio Project Renamer Infos中找到有关当前版本的信息。
现在可以从Visual Studio Project Renamer Download Page下载最新版本。
非常感谢您的反馈。
我经常遇到在 Visual Studio 中重命名项目并编辑文件夹名称、项目名称和 .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
重命名解决方案和项目文件夹中的项目
从解决方案中删除项目
将现有项目添加到解决方案(您重命名的项目)
这个对我有用。TFS 还将跟踪新项目。
使用 TFS 时,第 2 步实际上是在源代码管理中重命名文件夹,然后在重新打开解决方案之前获取最新的。
在 Visual Studio 2013 Update 1 中测试了一种更简单的方法,适用于 TFS 连接的项目:
我们最近上传了一个免费的 Visual Studio 扩展测试版,它可以为您完成这些工作。
看看 Visual Studio 画廊:画廊下载
嗯,我是按我的方式做的
在文本编辑器中打开 .sln,然后在以下行中将 <FolderName> 更改为您的新文件夹名称 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\.csproj", " {021CC6B0-8CFB-4194-A103-C19AF869D965}"
转到.sln文件,右键,用Notepad++(或任何编辑器;Notepad++最快)打开,找到路径,更改它。
更改文件夹名称后,在记事本中打开 .sln 文件并将路径更改为新路径。
当必须创建一个新项目并且您想要一个与项目名称不同的项目文件夹名称时,也会出现类似的问题。
当您创建一个新项目时,它会存储在
./path/to/pro/ject/YourProject/YourProject.**proj
假设您想将其直接放在ject
文件夹中:
./path/to/pro/ject/YourProject.**proj
我的解决方法是使用路径的最后一部分作为名称来创建项目,这样它就不会创建额外的目录:
./path/to/pro/ject/ject.**proj
现在,当您从 Visual Studio 中重命名项目时,无需离开 Visual Studio 即可实现目标:
./path/to/pro/ject/YourProject.**proj
这种方法的缺点是您必须调整默认名称空间和输出二进制文件的名称,并且您必须更新项目模板中包含的所有文件中的名称空间。
我使用 Visual Studio 2013 和TFS 2013。
我是这样做的:
最简单的方法是进入窗口的属性,更改默认命名空间的名称,然后重命名就完成了。
我做了以下事情:
<创建整个文件夹的备份>
在 Visual Studio 2013 中重命名项目(可选/不需要)。
将项目导出为模板。
关闭解决方案。
重新打开解决方案
从保存的模板创建一个项目并使用您喜欢的名称。
从解决方案资源管理器中删除上一个项目。
此时我尝试编译新的解决方案,为此,我必须手动将一些资源和标头从旧项目文件夹复制到新项目文件夹。这样做直到它编译没有错误。现在这个新项目将“ .exe”文件保存到之前的文件夹中。*
所以->
转到 Windows 资源管理器并手动将解决方案文件从旧项目文件夹复制到新项目文件夹。
关闭解决方案,然后从新项目中打开解决方案。
如果需要,将配置更改回 (x64)。
从解决方案的文件夹中删除具有旧名称的项目文件夹。
或者简单地说,复制所有代码,使用所需名称打开一个新项目,然后粘贴代码。运行调试,然后删除以前的项目。完毕!
它对我有用!
我试图rename
找到 Visual Studio 社区 2019 中的文件夹,但找不到它。
但是,我想通了while the code is running you can not change the name of the folder
。
答案是:
rename
名称将在那里。其他答案提供了很多关于如何做到这一点的细节。不过,这里有一个快捷方式,可以为您节省一些工作:
.csproj
文件这样,您就不必繁琐地使用 Visual Studio GUI。您也可以通过这种方式修复命名空间。您可以使用源代码管理来验证更改(例如打开 TortoiseGit Commit 并查看更改)。
最简单的方法:
Project -> Export Template... -> Project Template -> Finish
File -> New Project -> Find the template -> Give it the name you want -> Add to existing solution or just as new
就是这样,你已经完成了,你现在可以根据需要删除另一个项目,但首先要确保新项目按预期工作。模板应保留所有依赖项和项目设置。
右键单击 project → Properties,然后将 (name) 设置为所需的名称。