在Visual Studio中重命名解决方案(和目录)的正确方法

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

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

有官方的做法吗?

531487 次浏览

Visual Studio中的重命名操作只更改文件名,即*。PRJ为项目,*。SLN的一个解决方案。您将需要使用文件系统单独重命名文件夹,并且您将需要删除并重新添加项目,因为它们将有新的文件夹名称。但是,请注意解决方案文件和项目文件分别是文本文件和xml文件。您可以编写自己的程序来解析它们,重命名文件夹名和文件名,并在内部修复项目/解决方案文件。

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

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

删除/添加项目文件方法

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

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

优势

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

缺点

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

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

手动编辑。sln文件

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

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

  1. 关闭Visual Studio。
  2. 创建.sln文件的备份(您可以随时回滚)。
  3. 假设你想把目录Project1重命名为Project2
  4. 如果不使用源代码控制,使用Windows资源管理器将文件夹从Project1重命名为Project2
  5. 如果使用源代码管理,使用源代码管理提供的函数将文件夹从Project1重命名为Project2。这将保留文件的历史记录。例如,使用TortoiseSVN,右键单击文件,选择TortoiseSVN .. Rename
  6. 在.sln文件中,使用类似记事本的文本编辑器,将Project1的所有实例编辑为Project2
  7. 重新启动Visual Studio,一切都将像以前一样工作,但是项目在不同的目录中。

你也可以看到手动重命名解决方案文章描述了这个手工过程

优势

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

警告

  • 在重命名任何东西之前,将所有内容备份到.zip文件中是很重要的,因为这种方法会在源代码控制方面产生问题。
  • 如果您的项目处于源代码控制之下,如果您重命名文件或重命名文件,则可能会产生问题 源控制之外的目录(使用Windows资源管理器)。最好使用源代码控制框架本身来重命名文件,如果可以的话,以保存该文件的历史(在右键单击上下文菜单上检查-它可能有一个重命名文件的功能)

更新2014-11-02

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

  • 重命名命名空间以匹配Windows资源管理器中的目录名称,或者;
  • 重命名Windows资源管理器中的目录以匹配命名空间。

在第二种情况下,最后一个词定义了Windows资源管理器中的新目录名称,例如,如果我们将命名空间更改为ViewModel2,它将提供将文件移动到文件夹ViewModel2

但是,这并不一定会更新源代码控制中的文件,因此您可能仍然必须使用手动方法。

enter image description here

更新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

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

您可以:

  1. 点击file-> new ->从现有项目创建项目

  2. 选择您的原始文件,例如。方案1,并输入新的文件名方案2

  3. 2 .在新方案中修改项目名称

重命名一个解决方案:

  1. 在“解决方案资源管理器”中,右键单击项目,选择“重命名”,然后

    .输入新的名称
  2. 在解决方案资源管理器中,右键单击项目并选择属性。 在“应用程序”选项卡上,更改“程序集名称”;和“违约 namespace" . < / p >

  3. 在主cs文件(或任何其他代码文件)中,重命名命名空间 声明以使用新名称。为此,右键单击名称空间 并选择Refactor >重命名输入新名称。例如: namespace WindowsFormsApplication1 < / p >

  4. 修改中AssemblyTitle和AssemblyProduct 属性/ AssemblyInfo.cs。< / p >

    [assembly: AssemblyTitle("New Name Here")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("")]
    [assembly: AssemblyProduct("New Name Here")]
    [assembly: AssemblyCopyright("Copyright ©  2013")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    
  5. 物理删除bin和obj目录。

  6. 重命名项目物理文件夹目录。

  7. 打开SLN文件(在记事本或任何编辑器中)并更改路径

  8. 清理和重建项目。

我尝试了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路径< / p >

所以我的.csproj文件以及bin和obj文件夹的路径应该是: 路径c: \我\ \ project1 \ project1 \ < / p >

  1. 在VS中双击project1打开解决方案。sln文件。

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

  3. 在“解决方案资源管理器”中,右键单击项目并选择“属性”。在“应用程序”选项卡上,更改“程序集名称”和“默认名称空间”。

  4. 在主CS文件(或任何其他代码文件,如全局。例如Asax),重命名命名空间声明以使用新名称。为此,右键单击名称空间并选择重构>重命名输入一个新名称。例如:

名称空间project1

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

  1. 请确保:Properties/AssemblyInfo.cs中的AssemblyTitle和AssemblyProduct被设置为新名称(“project2”)。
< p > 1 [assembly: AssemblyTitle(“这里的新名称”)] 2 [组装:AssemblyDescription (" ")) 3. [组装:AssemblyConfiguration (" ")) 4 [组装:AssemblyCompany (" ")) 5 [assembly: AssemblyProduct(“这里的新名称”)] 6 [assembly: AssemblyCopyright(“版权©2013”)] 7 [组装:AssemblyTrademark (" ")) 8 [组装:AssemblyCulture (" ")] < / p >
  1. 关闭Visual Studio。

  2. 从物理上删除bin和obj目录。

  3. 重命名父文件夹和源文件夹为新名称(project2):

例子中: 我c: \ \路径\ project1 \ project1 < / p > < p >将会是: c: \我\ \ project2 \ project2路径< / p >

  1. 重命名SLN文件名右键单击该SLN文件转发重命名。

  2. 最后打开SLN文件(在记事本或任何编辑器内),复制并替换(Ctrl+h)任何旧名称到新名称。

  3. 打开VS,点击BUILD -> Clean Solution

  4. 点击构建->构建解决方案,然后F5运行…

  5. Note1:如果你得到这样的东西:编译错误 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”文件夹并删除所有文件。

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

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

    为以防万一,备份你的文件夹项目,尽管你不会这样做 摸摸它,但以防万一!李< / >
  1. 创建一个新项目,并使用您希望的“new”名称保存它 项目,意思是你想要将你的“旧”项目更改为的名称 <李>。之后,您将有一个项目与您想要的名称,但 它不做任何事情,但打开一个窗口(一个Windows窗体应用程序在 我的情况)。李< / > 随着新项目的打开,单击Project->Add Existing Ítem and using Windows资源管理器定位您的“旧”文件夹项目,并选择所有文件 下……Visual Studio xxx\Projects\oldApp\oldApp
  2. 选择所有文件在那里(.vb, .resx),并将它们添加到你的“新”项目 (应该已经打开的那个). 几乎最后一步是使用解决方案打开你的项目文件 资源管理器和在第一个选项卡更改默认启动形式的形式
  3. 重建一切。
也许更多的步骤,但更少或根本没有输入,只是一些鼠标点击。希望 它有助于:)

重命名网站:

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

查找并编辑IISExpress的applicationhost。配置,在这里找到: C: \用户{username} \ \ IISExpress \ config文件< / p >

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

假设我们正在更改一个名为“helloworld .ui”的项目;“;Section1to5.ui"

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

解决方案资源管理器截图

  1. 右键单击刚刚重命名的项目,然后单击“属性”。在“应用程序”选项卡下,更改“程序集名称”;和“默认名称空间”。

  2. 在主Program.cs文件(或您可能已经创建的任何其他代码文件)中,将名称空间声明重命名为使用新名称。为此,右键单击名称空间并选择Refactor >重命名输入新名称。例如:

    名称空间HelloWorld。ui——比;名称空间Section1to5.ui

  3. 接下来,展开“properties”;双击AssemblyInfo.cs文件。你会注意到下面的代码片段:

[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。

  1. 在项目目录中,进入文件夹"HelloWorld.ui"并删除&;bin&;和“;obj"目录。

  2. 完成后,将文件夹重命名为“helloworld .ui”;到新的项目名称。

  3. 用文本编辑器(如Notepad或notepad++)打开重命名的解决方案文件,并编辑以下行:

    项目("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld.ui" HelloWorld.ui\HelloWorld.ui. csproject "{39FC65A3-3AE7-4EC9-B8F7-74F971636C70}"

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

  1. 用visual studio打开解决方案文件,并清理和重建项目。

  2. 你可能注意到&;Debug/ run &;按钮已被“附件”所取代;按钮。如果发生这种情况,只需右键单击项目并选择“设置为启动项目”;选择。或者,单击Tools>Customize>Commands>Add command>Debug并添加按钮。

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

连同这个链接的答案

https://stackoverflow.com/a/19844531/6767365 < a href = " https://stackoverflow.com/a/19844531/6767365 " > < / >

重命名这些文件。 我把我的项目重命名为MvcMovie,它工作得很好 enter image description here < / p >

如果在加载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年更新:

renameproject使这毫不费力。一个简单的CLI工具,它甚至在成功时创建一个git提交。

https://github.com/ModernRonin/ProjectRenamer


旧的回答:

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

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

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

enter image description here

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

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

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

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

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

  1. < p >备份。首先,一定要创建一个备份文件。只需将项目复制到另一个目录。

  2. 在“解决方案资源管理器”中,右键单击项目,选择“重命名”,并输入一个新名称。

  3. 在解决方案资源管理器中,右键单击项目并选择属性。在“应用程序”选项卡上,更改“程序集名称”;和“默认名称空间”。

  4. 打开任意。cs并重命名所有命名空间

  5. 在Properties/AssemblyInfo.cs中更改AssemblyTitle和AssemblyProduct。

  6. 物理删除bin和obj目录。

  7. 重命名项目物理文件夹目录。

  8. 打开Sln文件(在记事本或任何编辑器中)并更改项目的路径。

  9. 清理和重建项目

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