我有一个相当复杂的Visual Studio解决方案(2010年,但这不重要),我需要重命名。

我想重命名文件夹以匹配新的解决方案名称,但我无法找到自动重构文件夹名称的方法,而且查看每个项目文件将是一件痛苦的事情。

有官方的做法吗?


The Rename operations in Visual Studio only change the filename, i.e. *.prj for a project, and *.sln for a solution. You will need to rename folders separately using the filesystem, and you will need to remove and re-add the projects since they will have new folder names. However, note that the solution and project files are respectively text and xml files. You could write your own program that parses them and renames both the folder names, filenames, and fixes the project/solution files internally.


删除bin和obj子文件夹以删除不正确的引用,然后使用windows搜索旧名称。

编辑任何代码或xml文件发现和重建,现在应该是好的。


删除/添加项目文件方法

这个方法完全是为了重命名项目的目录,就像在Windows资源管理器中看到的那样。

使用GIT、SVN或WinZip(很重要!)等工具备份整个项目。 在Visual Studio中的解决方案中,删除项目。 在Windows资源管理器中重命名目录。 在Visual Studio中再次添加项目。

优势

您可以使Windows资源管理器中的目录与解决方案中的项目名称相匹配。

缺点

如果删除一个库,它将从其他项目中删除对该库的任何引用。在此之后,解决方案可能无法编译,直到您将该库的引用添加回(这非常简单)。这就是第一步(备份)如此重要的原因。 如果您有源代码控制,则会丢失文件的历史记录。

右键单击一个项目并选择“在Windows资源管理器中打开文件夹”对于跟踪项目在执行此过程中的存储位置非常有用。


手动编辑。sln文件

这个方法完全是为了重命名项目的目录,就像在Windows资源管理器中看到的那样。

这种方法不会遇到下面的删除/添加项目文件方法中的问题(引用消失),但如果项目处于源代码控制之下,它可能会导致问题(参见下面的注释)。这就是为什么第二步(备份)如此重要。

Close Visual Studio. Create a backup of your .sln file (you can always roll back). Imagine you want to rename directory Project1 to Project2. If not using source control, rename the folder from Project1 to Project2 using Windows Explorer. If using source control, rename the folder from Project1 to Project2 using the functions supplied by source control. This preserves the history of the file. For example, with TortoiseSVN, right click on the file, select TortoiseSVN .. Rename. In the .sln file, edit all instances of Project1 to be Project2, using a text editor like NotePad. Restart Visual Studio, and everything will work as before, but with the project in a different directory.

你也可以看到重命名解决方案手动或帖子,其中描述了这个手动过程。

优势

您可以使Windows资源管理器中的目录与解决方案中的项目名称相匹配。 该方法不会从其他项目中删除对该文件的任何引用(与删除/添加项目文件方法相比,这是一个优点,请参阅下面我的其他回答)。

警告

It's important to back everything up into a .zip file before renaming anything, as this method can create issues with source control. If your project is under source control, it may create issues if you rename files or directories outside of source control (using Windows Explorer). Its preferable to rename the file using the source control framework itself, if you can, to preserve the history of that file (check out the context menu on a right click - it may have a function to rename the file).

更新2014-11-02

ReSharper添加了一个自动化的方法来实现与上面的手动方法相同的结果。如果命名空间下划线是弯曲的蓝色线,单击动作金字塔图标:

重命名命名空间以匹配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进行测试。

更新2021-11-19

重新测试。仍能工作。

更新2022-11-30

最新版本的Git应该自动检测文件重命名,因此不需要额外注意保存差异的历史。


使用notepad++的“在文件中查找”功能对我来说很好(ctrl + H,在文件中查找)。

http://notepad-plus-plus.org/download/v6.2.2.html


您还可以导出模板,然后从导出的模板创建一个新项目,根据自己的喜好更改名称


您可以:

点击file-> new ->从现有项目创建项目 选择您的原始文件,例如。方案1,并输入新的文件名方案2 2 .在新方案中修改项目名称


重命名一个解决方案:

In Solution Explorer, right-click the project, select Rename, and enter a new name. In Solution Explorer, right-click the project and select Properties. On the Application tab, change the "Assembly name" and "Default namespace". In the main cs file (or any other code files), rename the namespace declaration to use the new name. For this right-click the namespace and select Refactor > Rename enter a new name. For example: namespace WindowsFormsApplication1 Change the AssemblyTitle and AssemblyProduct in Properties/AssemblyInfo.cs. [assembly: AssemblyTitle("New Name Here")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("New Name Here")] [assembly: AssemblyCopyright("Copyright © 2013")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] Delete bin and obj directories physically. Rename the project physical folder directory. Open the SLN file (within notepad or any editor) and change the path to the project. Clean and Rebuild the project.


我尝试了Visual Studio Project Renamer,但是,它在我尝试的少数情况下抛出异常。

我在CopyWiz上取得了很大的成功。

我与他们没有任何关系,我还没有为它付钱,但我可能很快就要为它付钱了,因为它似乎是唯一一个对我的c#和c++项目都有效的工具。我确实希望他们能赚点钱,并继续改进它。


如果您正在Visual Studio 2010中创建网站。您可以按照如下方式修改项目名称。

步骤1:在Visual Studio 2010中,SLN文件将存储在Visual Studio 2010的项目文件夹下,源文件存储在Visual Studio 2010的网站文件夹下。

步骤2:重命名文件夹右键单击该文件夹通过重命名,其中包含您的SLN项目。

步骤3:重命名SLN文件名右键单击该SLN文件转发重命名。

第四步:在Visual Studio 2010的Website下重命名包含SLN文件Source的文件夹。

步骤5:然后最后双击您的SLN文件,并更改您的SLN源文件夹的根。


唯一的解决方案,为我在Visual Studio 2013在一个WEB项目:

假设我想将“project1”重命名为“project2”。 假设我的.sln文件的物理路径是: c: \ \ \ project1 \ project1.sln路径

因此,我的.csproj文件以及bin和obj文件夹的路径应该是: c: \我\ \ project1 \ project1 \路径

Open the solution in VS by double clicking the project1.sln file. In Solution Explorer, right-click the project (NOT the solution!!!), select Rename, and enter a new name. In Solution Explorer, right-click the project and select Properties. On the Application tab, change the "Assembly name" and "Default namespace". In the main CS file (or any other code files like Global.asax for example), rename the namespace declaration to use the new name. For this right-click the namespace and select Refactor > Rename enter a new name. For example:

名称空间project1

4.1在“解决方案资源管理器”中,右键单击项目(不是解决方案!!),选择“重命名”,并输入新的名称。

请确保:Properties/AssemblyInfo.cs中的AssemblyTitle和AssemblyProduct被设置为新名称(“project2”)。

1 [assembly: AssemblyTitle(“这里的新名称”)] 2 [组装:AssemblyDescription (" ")) 3. [组装:AssemblyConfiguration (" ")) 4 [组装:AssemblyCompany (" ")) 5 [assembly: AssemblyProduct(“这里的新名称”)] 6 [assembly: AssemblyCopyright(“版权©2013”)] 7 [组装:AssemblyTrademark (" ")) 8 [组装:AssemblyCulture (" "))

关闭Visual Studio。 从物理上删除bin和obj目录。 重命名父文件夹和源文件夹为新名称(project2):

在这个例子中: 我c: \ \路径\ project1 \ project1

将会是: c: \ \ \ project2 \ project2路径

重命名SLN文件名右键单击该SLN文件转发重命名。 最后打开SLN文件(在记事本或任何编辑器内),复制并替换(Ctrl+h)任何旧名称到新名称。 打开VS,点击BUILD -> Clean Solution 点击构建->构建解决方案,然后F5运行… 注1:如果你得到这样的东西:编译错误 CS0246:无法找到类型或名称空间名称“project2”(您是否缺少using指令或程序集引用?)

c:\Users\Username\AppData\Local\Temp\Temporary ASP. exe网络文件\ \ 78 dd917f \ d0836ce4 \ App_Web_index.cshtml.a8d08dba.b0mwjmih.0.cs根源

然后进入“临时ASP。NET Files”文件夹并删除所有文件。

注2:如果你试图“另存为”到一个新命名的项目,并保留旧的项目,考虑通过修改web中的connectionStrings来复制你的db。配置和重新启动迁移(如果项目中有迁移的话)。


我是vs的新手,我只是遇到了同样的问题:需要在工作几周后重新命名一个已经开始的项目。我就是这么做的,而且成功了。

Just in case, make a backup of your folder Project, although you won't be touching it, but just in case! Create a new project and save it using the name you wish for your 'new' project, meaning the name you want to change your 'old' project to. Build it. After that you'll have a Project with the name you wanted but that it does not anything at all but open a window (a Windows Form App in my case). With the new proyect opened, click on Project->Add Existing Ítem and using Windows Explorer locate your 'old' folder Project and select all the files under ...Visual Studio xxx\Projects\oldApp\oldApp Select all files in there (.vb, .resx) and add them to your 'new' Project (the one that should be already opened). Almost last step would be to open your Project file using the Solution Explorer and in the 1st tab change the default startup form to the form it should be. Rebuild everything.

可能会有更多的步骤,但更少或根本不需要输入,只需要点击鼠标。希望 这很有帮助:)


重命名网站:

http://www.c-sharpcorner.com/Blogs/46334/rename-website-project-in-visual-studio-2013.aspx

定位并编辑IISExpress的applicationhost。配置,在这里找到: C: \用户{username} \ \ IISExpress \ config文件


下面是在Visual Studio 2013中逐步重命名整个解决方案的方法

假设我们正在更改一个名为“HelloWorld”的项目。到Section1to5.ui

转到解决方案资源管理器(截图如下),右键单击您希望重命名的项目,并选择“重命名”。输入所需的新名称。

Right click on the Project that you have just renamed, and click on "Properties". Under the Application tab, change the "Assembly name" and "Default namespace". In the main Program.cs file (or any other code files that you may have created), rename the namespace declaration to use the new name. For this right-click the namespace and select Refactor > Rename enter a new name. For example: namespace HelloWorld.ui ----> namespace Section1to5.ui Next, expand the "Properties" and double click on AssemblyInfo.cs file. You will notice the below code fragment:

[组装:AssemblyTitle(“HelloWorld.ui”)] [组装:AssemblyDescription (" ")) [组装:AssemblyConfiguration (" ")) [组装:AssemblyCompany(“微软”)] [组装:AssemblyProduct(“HelloWorld.ui”)] [assembly: AssemblyCopyright("Copyright©Microsoft 2015")] [组装:AssemblyTrademark (" ")) [组装:AssemblyCulture (" "))

您需要将Properties/AssemblyInfo.cs中的AssemblyTitle和AssemblyProduct更改为新名称,在本例中为“HelloWorld”。“Section1to5.ui”。更改完名称后,保存并关闭Visual Studio。

在项目目录中,进入“HelloWorld”文件夹。删除bin和obj目录。 完成后,将文件夹重命名为“HelloWorld”。到新的项目名称。 用文本编辑器(如Notepad或notepad++)打开重命名的解决方案文件,并编辑以下行: Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld. "ui”、“HelloWorld.ui \ HelloWorld.ui。csproj”、“{39 fc65a3 - 3 - ae7 4 - ec9 b8f7 - 74 f971636c70}”

替换“HelloWorld”的所有实例。你为你的项目选择的新名称,在本例中是“Section1to5.ui”。这将把项目的路径更改为步骤6中重命名的目录。

使用visual studio打开解决方案文件,并清理和重建项目。 您可能注意到“调试/运行”按钮已被“附加”按钮所取代。如果发生这种情况,只需右键单击项目并选择“设置为启动项目”选项。或者单击“工具>自定义>命令>添加命令>调试”,添加按钮。

你完成了重命名项目,如果你有任何疑问,请随时发帖,我很乐意帮助你!


连同这个链接的答案

https://stackoverflow.com/a/19844531/6767365

重命名这些文件。 我把我的项目重命名为MvcMovie,它工作得很好


如果在加载Xamarin等共享项目时遇到问题,请记住在csproj文件中更改对共享库的引用。我开发了一款CocosSharp游戏,但Droid/iOS/WP81项目不想加载。我不得不在每个csproj文件(Driod/iOS/WP81)中更改下面的行,其中引用了共享库。这是由于文件夹名称更改造成的,因此将YOUR_PREVIOUS_NAMESPACE替换为文件夹的新名称。

<Import Project="..\YOUR_PREVIOUS_NAMESPACE.Shared\EmptyProject.Shared.projitems" Label="Shared" />

另外,我注意到对于. driod项目,项目属性中的程序集名称不能使用Visual Studio更改(我使用2015年)。我必须在. droid中手动更改程序集名称。csproj文件。

<AssemblyName>YourNameSpace</AssemblyName>

然后我加载解决方案,在项目属性视图新名称出现。重建dll后生成该名称。


2021年更新:

重命名项目使这变得毫不费力。一个简单的CLI工具,它甚至在成功时创建一个git提交。

https://github.com/ModernRonin/ProjectRenamer


旧的回答:

我曾经使用Visual Studio扩展“完全重命名项目”来成功地重命名ASP中的项目。NET Core 2解决方案。

我使用ReSharper然后调整名称空间(右键单击项目,重构,调整名称空间…)

https://github.com/kuanysh-nabiyev/RenameProjectVsExtension


我遵循https://gist.github.com/n3dst4/b932117f3453cc6c56be链接,我能够重命名我的整个解决方案成功。


如果在遵循建议的解决方案之后,您已经设法重命名了一个新的解决方案(假设从www.oldsite.com重命名为www.newsite.com),但仍然使用旧的Web站点项目名称,因为您有一个旧的“ASP。Net Web站点”,然后遵循这些额外的步骤(假设从project1到project2)。

安装和旧的Visual Studio 2017 用它打开项目,右键单击项目->添加->新建项目。 选择“已安装-> Visual c# -> Web ->以前版本-> ASP. exe”。NET空网站”并将其命名为“www.newsite.com” 将Visual Studio 2017中的所有文件和文件夹从旧站点移动到新站点,直到旧站点仍然为空。 右键单击“www.oldsite.com”并删除它。

现在您可以保存所有内容,并使用Visual Studio 2022再次打开它。所有这些都是需要的,因为VS2019/VS2020不支持“旧的”ASP。Net网站创建,但只编辑。


如果要重命名解决方案,可以执行以下步骤。

Backup.First things first, make sure to always create a backup file.Simply copy your project to a different directory. In Solution Explorer, right-click the project, select Rename, and enter a new name. In Solution Explorer, right-click the project and select Properties. On the Application tab, change the "Assembly name" and "Default namespace". Open any .cs and rename all namespace Change the AssemblyTitle and AssemblyProduct in Properties/AssemblyInfo.cs. Delete bin and obj directories physically. Rename the project physical folder directory. Open the Sln file (within notepad or any editor) and change the path to the project. Cleans and Rebuild the project

https://learn.microsoft.com/en-us/answers/questions/1028483/rename-solution-and-related-projects-in-a-aspnet-w.html细节……