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

时间:2010-01-11 17:37:26

标签: visual-studio

我需要重命名的Visual Studio解决方案(2010年,但无所谓)。

我想重命名文件夹以匹配新的解决方案名称,但我无法找到自动重构文件夹名称的方法,并且浏览每个项目文件都会很痛苦。

有正式方法吗?或者(并且更不优选),是否有免费工具来实现这一目标?

16 个答案:

答案 0 :(得分:325)

手动编辑.sln文件

此方法完全旨在重命名项目目录,如Windows资源管理器中所示。

此方法不会遇到下面删除/添加项目文件方法中的问题(引用消失),但如果您的项目受源代码管理,则可能会导致问题(请参阅下面的注释) 。这就是第2步(备份)如此重要的原因。

  1. 关闭Visual Studio。
  2. 创建.sln文件的备份(您可以随时回滚)。
  3. 想象一下,您想将目录“Project1”重命名为“Project2”。
  4. 如果不使用源代码管理,请使用Windows资源管理器将文件夹从“Project1”重命名为“Project2”。
  5. 如果使用源代码管理,请使用源代码管理提供的功能将文件夹从“Project1”重命名为“Project2”。这会保留文件的历史记录。例如,使用TortoiseSVN,右键单击该文件,选择TortoiseSVN .. Rename
  6. 在.sln文件中,使用NotePad等文本编辑器将“Project1”的所有实例编辑为“Project2”。
  7. 重新启动Visual Studio,一切都将像以前一样工作,但项目位于不同的目录中。
  8. 您还可以看到renaming solution manuallypost which describes this manual process

    <强>优点

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

    <强>警告

    • 在重命名任何内容之前将所有内容备份到.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。

答案 1 :(得分:137)

以下是重命名解决方案时需要遵循的步骤:

  1. 在“解决方案资源管理器”中,右键单击项目,选择“重命名”和 输入新名称。
  2. 在解决方案资源管理器中,右键单击项目,然后选择“属性”。 在“应用程序”选项卡上,更改“程序集名称”和“默认值” 命名空间”。
  3. 在主cs文件(或任何其他代码文件)中,重命名命名空间 声明使用新名称。为此,右键单击命名空间 并选择Refactor&gt;重命名输入新名称。例如:                        namespace WindowsFormsApplication1
  4. 更改AssemblyTitle和AssemblyProduct 属性/ 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("")]
    
  5. 以物理方式删除bin和obj目录。

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

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

  8. 清理并重建项目。

答案 2 :(得分:29)

visual studio中的重命名操作仅更改文件名,即项目,* .prj和解决方案* .sln。您将需要使用文件系统单独重命名文件夹,并且您将需要删除和读取项目,因为它们将具有新的foldernames。但请注意,解决方案和项目文件分别是texst和xml文件。您可以编写自己的程序来解析它们,并重命名文件夹名称,文件名,并在内部修复项目/解决方案文件。

答案 3 :(得分:20)

您也可以导出模板,然后从导出的模板创建一个新项目,根据需要更改名称

答案 4 :(得分:8)

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

假设我们正在更改一个名为&#34; HelloWorld.ui&#34;的项目。到&#34; Section1to5.ui&#34;

  1. 转到解决方案资源管理器(下面的屏幕截图),右键单击要重命名的项目,然后选择&#34;重命名&#34;。输入您想要的新名称。
  2. Solution Explorer Screenshot

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

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

      命名空间HelloWorld.ui ----&gt;名称空间Section1to5.ui

    3. 接下来,展开&#34;属性&#34;并双击AssemblyInfo.cs文件。您会注意到以下代码片段:

    4. [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更改为新名称,在此示例中为&#34; HelloWorld.ui&#34;到&#34; Section1to5.ui&#34;。完成更改名称后,保存并关闭Visual Studio。

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

      2. 完成后,重命名文件夹&#34; HelloWorld.ui&#34;到新项目名称。

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

        项目(&#34; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}&#34;)=&#34; HelloWorld.ui&#34;,&#34; HelloWorld.ui \ HelloWorld.ui.csproj& #34;,&#34; {39FC65A3-3AE7-4EC9-B8F7-74F971636C70}&#34;

      4. 替换&#34; HelloWorld.ui&#34;的所有实例您为项目选择的新名称,在本例中为&#34; Section1to5.ui&#34;。这会在步骤6中将项目的路径更改为重命名的目录。

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

        2. 你可能会注意到&#34; Debug / Run&#34;按钮已被&#34;附加&#34;按钮。如果发生这种情况,只需右键单击项目并选择&#34;设置为启动项目&#34;选项。或者,点击工具&gt;自定义&gt;命令&gt;添加命令&gt;调试并添加按钮。

        3. 您已重新命名该项目,如果您有任何疑问,请随时发帖,我很乐意帮忙!

答案 5 :(得分:6)

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

编辑找到并重建的任何代码或xml文件,现在应该没问题。

答案 6 :(得分:4)

删除/添加项目文件方法

此方法完全旨在重命名项目目录,如Windows资源管理器中所示。

  1. 使用GIT,SVN或WinZip等内容备份整个项目(重要!)。
  2. 在Visual Studio的解决方案中,删除项目。
  3. 在Windows资源管理器中重命名目录。
  4. 在Visual Studio中重新添加项目。
  5. <强>优点

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

    <强>缺点

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

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

答案 7 :(得分:4)

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

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

答案 8 :(得分:4)

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

我在CopyWiz取得了不错的成绩。

我与他们没有任何关系,我还没有付钱,但我可能不得不很快,因为它是唯一适用于我的C#和C ++项目的工具。我希望他们赚一点钱,并继续改进它。

答案 9 :(得分:3)

你可以:

  1. 点击文件 - &gt; new - &gt;从现有项目创建项目

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

  3. 更改新解决方案2中的项目名称

答案 10 :(得分:2)

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

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

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

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

步骤4:在Visual Studio 2010中的网站下重命名包含该SLN文件的源的文件夹。

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

答案 11 :(得分:2)

我是VS的新手。我只是遇到了同样的问题:需要在几周的工作后重命名一个已启动的项目。这就是我做的,它的工作原理。

  1. 以防万一,请备份您的文件夹Project,尽管您不会 触摸它,但为了以防万一!
  2. 创建一个新项目并使用您希望“新”的名称保存它 project,表示要将“旧”项目更改为的名称。
  3. 构建它。之后,你将拥有一个名为你想要的项目 除了打开一个窗口(Windows窗体应用程序)之外,它什么都没有 我的情况)。
  4. 打开新的proyect,点击Project-&gt; AddExistingÍtem并使用 Windows资源管理器找到“旧”文件夹项目并选择所有文件 在...... Visual Studio xxx \ Projects \ oldApp \ oldApp
  5. 选择其中的所有文件(.vb,.resx)并将其添加到“新”项目中 (应该已经打开的那个)。
  6. 几乎最后一步是使用解决方案打开您的项目文件 资源管理器和第一个选项卡将默认启动窗体更改为窗体 它应该是。
  7. 重建一切。
  8. 可能更多的步骤,但更少或根本没有打字,只需点击一下鼠标。希望 它有助于:)

答案 12 :(得分:2)

如果您在加载共享项目时遇到问题,例如Xamarin,请记住在csproj文件中更改对共享库的引用。我开发了一个CocosSharp游戏,而Droid / iOS / WP81项目并不想加载。我必须在每个引用Shared lib的csproj文件(Driod / iOS / WP81)中更改以下行。这是因为文件夹名称更改造成的,因此请将YOUR_PREVIOUS_NAMESPACE替换为新的文件夹名称。

getFragmentManager().beginTransaction().replace(R.id.container,new HomeFragment()).commit();

另外我注意到。对于.Driod项目,项目属性中的程序集名称不能使用visual studio更改(我使用2015)。我不得不在.Droid.csproj文件中手动更改程序集名称。

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

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

答案 13 :(得分:2)

我已经使用了Visual Studio扩展程序&#34; Full Rename Project&#34;成功重命名ASP.NET Core 2解决方案中的项目。

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

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

enter image description here

答案 14 :(得分:2)

我已经点击了https://gist.github.com/n3dst4/b932117f3453cc6c56be链接,因此能够成功重命名整个解决方案。

答案 15 :(得分:0)

以及此链接的回答

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

重命名这些文件。 我将我的项目重命名为MvcMovie并且工作正常 enter image description here