我有一个相当复杂的Visual Studio解决方案(2010年,但无所谓),我需要重命名.
我想重命名文件夹以匹配新的解决方案名称,但我无法找到自动重构文件夹名称的方法,并且浏览每个项目文件将是痛苦的.
有正式的方法吗?或者(更不优选),是否有免费工具来实现这一目标?
Con*_*ngo 350
手动编辑.sln文件
此方法完全旨在重命名项目的目录,如Windows资源管理器中所示.
此方法不会遇到下面的删除/添加项目文件方法中的问题(引用消失),但如果您的项目受源代码控制,则可能导致问题(请参阅下面的注释).这就是第2步(备份)如此重要的原因.
TortoiseSVN
右键单击该文件,选择TortoiseSVN .. Rename
.您还可以手动或发布描述此手动过程的重命名解决方案.
好处
警告
更新2014-11-02
ReSharper添加了一种自动方法,可以获得与上述手动方法相同的结果.如果命名空间用粗糙的蓝线加下划线,请单击操作金字塔图标以:
在第二种情况下,最后一个单词在Windows资源管理器中定义新目录名称,例如,如果我们将名称空间更改为ViewModel2
,它将提供将文件移动到文件夹ViewModel2
.
但是,这不一定会更新源代码管理中的文件,因此您可能仍需要使用手动方法.
更新2018-01-31
使用Visual Studio 2008,2010,2012,2013,2015,2017测试更新1,2,3,4,5.
Zah*_*med 147
以下是重命名解决方案时需要遵循的步骤:
namespace WindowsFormsApplication1
在Properties/AssemblyInfo.cs中更改AssemblyTitle和AssemblyProduct.
[assembly: AssemblyTitle("New Name Here")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("New Name Here")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
Run Code Online (Sandbox Code Playgroud)物理删除bin和obj目录.
重命名项目物理文件夹目录.
打开SLN文件(在记事本或任何编辑器中)并更改项目的路径.
清理并重建项目.
Aar*_*nLS 30
visual studio中的重命名操作只会更改文件名,即项目,*.prj和解决方案*.sln.您将需要使用文件系统单独重命名文件夹,并且您将需要删除和读取项目,因为它们将具有新的foldernames.但请注意,解决方案和项目文件分别是texst和xml文件.您可以编写自己的程序来解析它们,并在内部重命名文件夹名称,文件名和修复项目/解决方案文件.
小智 20
您还可以导出模板,然后从导出的模板创建一个新项目,根据需要更改名称
小智 10
下面是在Visual Studio 2013中重命名整个解决方案的分步方法
假设我们正在将名为"HelloWorld.ui"的项目更改为"Section1to5.ui"
右键单击刚刚重命名的项目,然后单击"属性".在"应用程序"选项卡下,更改"程序集名称"和"默认名称空间".
在主要的Program.cs文件(或您创建的任何其他代码的文件),命名空间声明,以使用新的名称.为此,右键单击命名空间,然后选择"重构">"重命名",输入新名称.例如:
namespace HelloWorld.ui ----> namespace Section1to5.ui
接下来,展开"属性",然后双击AssemblyInfo.cs文件.您会注意到以下代码片段:
Run Code Online (Sandbox Code Playgroud)[assembly: AssemblyTitle("HelloWorld.ui")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("HelloWorld.ui")] [assembly: AssemblyCopyright("Copyright © Microsoft 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")]
您需要将Properties/AssemblyInfo.cs中的AssemblyTitle和AssemblyProduct更改为新名称,在此示例中,从"HelloWorld.ui"更改为"Section1to5.ui".完成更改名称后,保存并关闭Visual Studio.
在项目目录,进入该文件夹"HelloWorld.ui"内删除的"bin"和"目标文件"目录.
完成后,将文件夹"HelloWorld.ui"重命名为新项目名称.
使用文本编辑器(如Notepad或Notepad ++)打开重命名的解决方案文件,然后编辑以下行:
项目("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")="HelloWorld.ui","HelloWorld.ui\HelloWorld.ui.csproj","{39FC65A3-3AE7-4EC9-B8F7-74F971636C70}"
将"HelloWorld.ui"的所有实例替换为您为项目选择的新名称,在本例中为"Section1to5.ui".这会在步骤6中将项目的路径更改为重命名的目录.
使用visual studio打开解决方案文件,清理并重建项目.
您可能会注意到"调试/运行"按钮已被"附加"按钮替换.如果发生这种情况,只需右键单击该项目并选择"设置为启动项目"选项.或者,单击工具>自定义>命令>添加命令>调试,然后添加按钮.
你完成重命名的项目,如果您有任何疑问,随意张贴,我很乐意帮帮忙!
删除/添加项目文件方法
此方法完全旨在重命名项目的目录,如在 Windows 资源管理器中所见。
好处
缺点
右键单击项目并选择“在 Windows 资源管理器中打开文件夹”对于在执行此过程时跟踪项目的存储位置很有用。
我尝试了 Visual Studio 项目重命名器,但是,在我尝试的少数情况下它会抛出异常。
我使用CopyWiz取得了巨大成功。
我与他们没有任何关系,而且我还没有为此付费,但我可能必须尽快付费,因为它似乎是唯一适用于我的 C# 和 C++ 项目的工具。不过,我确实希望他们能赚点钱,并继续改进。
2021 更新:
renameproject使这变得毫不费力。一个简单的 CLI 工具使用,它甚至在成功时创建一个 git commit。
https://github.com/ModernRonin/ProjectRenamer
旧答案:
我已经使用 Visual Studio 扩展“完全重命名项目”成功地重命名了 ASP.NET Core 2 解决方案中的项目。
然后我使用 ReSharper 来调整命名空间(右键单击项目,重构,调整命名空间...)
https://github.com/kuanysh-nabiyev/RenameProjectVsExtension