Visual studio 在VisualStudio中重命名解决方案(和目录)的正确方法
我有一个相当复杂的VisualStudio解决方案(2010年,但这不重要),我需要重命名 我想重命名文件夹以匹配新的解决方案名称,但我无法找到一种自动重构文件夹名称的方法,而且遍历每个项目文件都会很痛苦Visual studio 在VisualStudio中重命名解决方案(和目录)的正确方法,visual-studio,Visual Studio,我有一个相当复杂的VisualStudio解决方案(2010年,但这不重要),我需要重命名 我想重命名文件夹以匹配新的解决方案名称,但我无法找到一种自动重构文件夹名称的方法,而且遍历每个项目文件都会很痛苦 有没有一个官方的方法可以做到这一点?或者,有没有免费的工具来实现这一点?Visual Studio中的重命名操作只会更改文件名,例如,对于项目,*.prj,对于解决方案,*.sln。您需要使用文件系统单独重命名文件夹,并且需要删除并重新添加项目,因为它们将有新的文件夹名称。但是,请注意,解决方
有没有一个官方的方法可以做到这一点?或者,有没有免费的工具来实现这一点?Visual Studio中的重命名操作只会更改文件名,例如,对于项目,*.prj,对于解决方案,*.sln。您需要使用文件系统单独重命名文件夹,并且需要删除并重新添加项目,因为它们将有新的文件夹名称。但是,请注意,解决方案和项目文件分别是文本文件和xml文件。您可以编写自己的程序,对其进行解析,重命名文件夹名、文件名,并在内部修复项目/解决方案文件。删除bin和obj子文件夹以删除大量不正确的引用,然后使用windows搜索旧名称
编辑找到的任何代码或xml文件并重建,现在应该可以了。删除/添加项目文件方法 此方法完全用于重命名项目的目录,如在Windows资源管理器中所示
- 您可以使Windows资源管理器中的目录与解决方案中的项目名称匹配
- 如果删除库,则会从其他项目中删除对所述库的任何引用。解决方案可能不会在此之后编译,直到您将对所述库的引用添加回(这非常容易)。这就是为什么步骤1(备份)如此重要的原因
- 如果有源代码管理,则会丢失文件的历史记录
右键单击项目并选择“在Windows资源管理器中打开文件夹”有助于在执行此过程时跟踪项目的存储位置。手动编辑.sln文件 此方法完全用于重命名项目的目录,如在Windows资源管理器中所示 此方法不会遇到下面的删除/添加项目文件方法中的问题(引用消失),但如果您的项目受源代码管理,则可能会导致问题(请参见下面的注释)。这就是为什么第2步(备份)如此重要的原因
Project1
重命名为Project2
Project1
重命名为Project2
Project1
重命名为Project2
。这将保留文件的历史记录。例如,使用TortoiseSVN
,右键单击文件,选择TortoiseSVN。。重命名
李>
Project1
的所有实例编辑为Project2
- 您可以使Windows资源管理器中的目录与解决方案中的项目名称匹配
- 此方法不会从其他项目中删除对此文件的任何引用(与删除/添加项目文件方法相比,此方法具有优势,请参见下面我的其他答案)
- 在重命名任何内容之前,将所有内容备份到.zip文件中是很重要的,因为这种方法可能会造成源代码管理问题
- 如果您的项目受源代码管理,则如果重命名文件或 源代码管理之外的目录(使用Windows资源管理器)如果可以,最好使用源代码管理框架本身重命名该文件,以保留该文件的历史记录(右键单击可查看上下文菜单-它可能具有重命名该文件的功能)
- 重命名命名空间以匹配Windows资源管理器中的目录名,或李>
- 重命名Windows资源管理器中的目录以匹配命名空间
ViewModel2
,它将提供将文件移动到文件夹ViewModel2
但是,这不一定会更新源代码管理中的文件,因此您可能仍然必须使用手动方法
更新2018-01-31
使用Visual Studio 2008、2010、2012、2013、2015、2017更新1、2、3、4、5进行测试
更新2020-05-02
使用Visual Studio 2019进行测试。使用记事本++的“在文件中查找”功能对我来说效果很好(ctrl+H,在文件中查找)
您还可以导出模板,然后根据导出的模板创建一个新项目,并根据需要更改名称您可以:
[assembly: AssemblyTitle("HelloWorld.ui")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("HelloWorld.ui")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]