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

我有一个相当复杂的Visual Studio解决scheme(2010年,但不应该),我需要重新命名。

我想重命名文件夹以匹配新的解决scheme名称,但是我无法找出自动重新构build文件夹名称的方法,并且通过每个单个项目文件都将是痛苦的。

有没有官方的方式来做到这一点? 或者(更不用说最好),有没有免费的工具来完成这个?

手动编辑.sln文件

此方法完全是为了重命名项目的目录,如在Windows资源pipe理器中所看到的。

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

  1. closuresVisual Studio。
  2. 创build.sln文件的备份(您始终可以回滚)。
  3. 想象一下你想把目录“Project1”改名为“Project2”。
  4. 如果不使用源代码pipe理,使用Windows资源pipe理器将文件夹从“Project1”重命名为“Project2”。
  5. 如果使用源代码pipe理,请使用源代码pipe理提供的function将文件夹从“Project1”重命名为“Project2”。 这保留了文件的历史。 例如,用TortoiseSVN ,右键单击该文件,selectTortoiseSVN .. Rename
  6. 在.sln文件中,使用文本编辑器(如记事本)将“Project1”的所有实例编辑为“Project2”。
  7. 重新启动Visual Studio,一切都将像以前一样工作,但将项目放在不同的目录中。

您还可以手动查看重命名解决scheme,也可以查看描述此手动过程的后续 。

优点

  • 您可以使Windows资源pipe理器中的目录与解决scheme中的项目名称匹配。
  • 此方法不会从其他项目中删除任何对此文件的引用(与删除/添加项目文件方法相比,请参阅下面的其他答案)。

警告

  • 在重命名任何内容之前,将所有内容都备份到.zip文件中非常重要,因为此方法可能会在源代码pipe理中产生问题。
  • 如果您的项目受到源代码pipe理,如果您在源代码pipe理之外重命名文件或目录(使用Windows资源pipe理器),则可能会产生问题。 如果可以的话, 最好使用源代码控制框架自己重命名文件来保存该文件的历史logging(右键单击上下文菜单 – 它可能有一个重命名文件的function)。

更新2014-11-02

ReSharper已经添加了一个自动化方法,以达到与上述手动方法相同的结果。 如果命名空间带有一条蓝色的下划线,请单击操作金字塔图标以执行以下任一操作:

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

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

但是,这不一定会更新源代码pipe理中的文件,因此您可能仍然需要使用手动方法。

在这里输入图像描述

更新2017-01-10

使用Visual Studio 2008,2010,2012,2013,2015,2015 Update 1,2,3进行testing。

以下是您需要遵循的重命名解决scheme的步骤:

  1. 在解决scheme资源pipe理器中,右键单击该项目,select重命名,然后input新名称。
  2. 在解决scheme资源pipe理器中,右键单击该项目并select属性。 在“应用程序”选项卡上,更改“程序集名称”和“默认名称空间”。
  3. 在主cs文件(或任何其他代码文件)中,重命名命名空间声明以使用新名称。 为此右键单击命名空间并select重构>重命名input一个新名称。 例如: namespace WindowsFormsApplication1
  4. 更改属性/ 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("")] 
  5. 从物理上删除bin和obj目录。

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

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

  8. 清理并重build项目。

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

您也可以导出模板,然后根据您的偏好更改名称,从导出的模板中创build一个新项目

删除您的bin和obj子文件夹,以删除不正确的引用加载,然后使用Windows来search旧名称。

编辑任何代码或XML文件find并重build,应该现在就好了。

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

假设我们将名为“HelloWorld.ui”的项目更改为“Section1to5.ui”

  1. 转到解决scheme资源pipe理器(下面的截图),右键单击您想要重命名的项目,然后select“重命名”。 input你想要的新名字。

Solution Explorer截图

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

  2. 在主Program.cs文件(或您可能已创build的任何其他代码文件)中,重命名该名称空间声明以使用新名称。 为此右键单击命名空间并select重构>重命名input一个新名称。 例如:

    命名空间HelloWorld.ui —->命名空间Section1to5.ui

  3. 接下来,展开“属性”并双击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”。 完成名称更改后,保存并closuresVisual Studio。

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

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

  3. 使用记事本或记事本++等文本编辑器打开重命名的解决scheme文件,然后编辑以下行:

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

将所有“HelloWorld.ui”实例replace为您为项目select的新名称,在本例中为“Section1to5.ui”。 这将在第6步中将项目的path更改为重命名的目录。

  1. 用Visual Studio打开解决scheme文件,清理并重build项目。

  2. 您可能会注意到“debugging/运行”button已被replace为“附加”button。 如果发生这种情况,只需右键单击该项目,然后select“设置为启动项目”选项。 或者,点击工具>自定义>命令>添加命令>debugging,然后添加button。

你完成了重命名项目,如果你有任何疑问随时发布,我会很高兴帮助!

记事本++的“查找文件”function使用罚款(ctrl + H,在文件中查找)。

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

我尝试了Visual Studio Project Renamer,但是在我尝试使用它的less数情况下它会抛出exception。

我已经与CopyWiz取得了很好的成绩。

我与他们没有任何关系,而且我还没有付钱,但是我可能不久就会发现,因为它是我的C#和C ++项目的唯一工具。 我希望他们赚一点钱,然后继续改进。

删除/添加项目文件的方法

此方法完全是为了重命名项目的目录,如在Windows资源pipe理器中所看到的。

  1. 使用GIT,SVN或WinZip(重要!)来备份整个项目。
  2. 在Visual Studio的解决scheme中,删除该项目。
  3. 在Windows资源pipe理器中重命名该目录。
  4. 在Visual Studio中再次添加项目。

优点

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

缺点

  • 如果您删除了一个库,它会从其他项目中删除对所述库的所有引用。 在这之后,解决scheme可能无法编译,直到您将引用添加到所述库(这很容易)。 这就是步骤1(备份)如此重要的原因。
  • 如果你有源代码控制,你将失去文件的历史。

右键单击项目并select“在Windows资源pipe理器中打开文件夹”,可以在执行此过程时跟踪项目的存储位置。

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

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

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

步骤3:右键单击重命名的SLN文件重命名SLN文件名。

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

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

在Web项目中,唯一适用于Visual Studio 2013的解决scheme:

比方说,我想重命名“project1”为“project2”。 假设我的.sln文件的物理path是:c:\ my \ path \ project1 \ project1.sln

所以我的.csproj文件以及bin和obj文件夹的path应该是:c:\ my \ path \ project1 \ project1 \

  1. 通过双击project1.sln文件在VS中打开解决scheme。

  2. 在解决scheme资源pipe理器中,右键单击项目(不是解决scheme!!!),select重命名,然后input一个新名称。

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

  4. 在主CS文件(或任何其他代码文件,例如Global.asax)中,将名称空间声明重命名为使用新名称。 为此右键单击命名空间并select重构>重命名input一个新名称。 例如:

命名空间project1

4.1在解决scheme资源pipe理器中,右键单击项目(不是解决scheme!!!),select重命名,然后input一个新名称。

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

1 [assembly:AssemblyTitle(“New Name Here”)] 2 [assembly:AssemblyDescription(“”)] 3 [assembly:AssemblyConfiguration(“”)] 4 [assembly:AssemblyCompany(“”)] 5 [assembly:AssemblyProduct(“新名字在这里“)] 6 [assembly:AssemblyCopyright(”Copyright©2013“)] 7 [assembly:AssemblyTrademark(”“)] 8 [assembly:AssemblyCulture(”“)]

  1. closuresVisual Studio。

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

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

在示例中:c:\ my \ path \ project1 \ project1

将是:c:\ my \ path \ project2 \ project2

  1. 右键单击重命名的SLN文件,重命名SLN文件名称。

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

  3. 打开VS并点击BUILD – > Clean Solution

  4. 单击生成 – >生成解决scheme,然后F5运行…

  5. 注1:如果你得到这样的东西:编译错误CS0246:无法findtypes或命名空间名称“project2”(你是否缺lessusing指令或程序集引用?)

源文件:c:\ Users \用户名\ AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ 78dd917f \ d0836ce4 \ App_Web_index.cshtml.a8d08dba.b0mwjmih.0.cs

然后转到“Temporary ASP.NET Files”文件夹并删除所有内容。

  1. 注2:如果你正在试图做一个“另存为”一个新的命名项目,并保持旧的,考虑通过修改web.config中的connectionStrings和重新启动迁移,如果你有一个项目。

我是VS新手。 我只是有同样的问题:需要重新启动项目后几个星期的工作。 这是我做的,它的工作。

  1. 以防万一,备份你的文件夹项目,虽然你不会触及它,但以防万一!
  2. 创build一个新的项目,并使用你的'新'项目的名字保存它,这意味着你想改变你的'旧'项目的名称。
  3. build立它。 之后,你将有一个你想要的名字的项目,但它什么也没有,只是打开一个窗口(在我的情况下的Windows窗体应用程序)。
  4. 打开新项目,点击项目 – >添加现有项目,然后使用Windows资源pipe理器find您的“旧”文件夹项目,并select下面的所有文件… Visual Studio xxx \ Projects \ oldApp \ oldApp
  5. select那里的所有文件(.vb,.resx)并将它们添加到你的“新”项目(应该已经打开的项目)。
  6. 几乎最后一步将是使用解决scheme打开您的项目文件
    资源pipe理器“,并在第一个选项卡中将默认的启动窗体更改为应该的窗体。
  7. 重build一切。

也许更多的步骤,但less或根本不打字,只需点击一下鼠标。 希望它有助于:)

重命名一个网站:

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

find并编辑IISExpress的applicationhost.config,在这里find:C:\ Users {用户名} \ Documents \ IISExpress \ config

随着这个环节的答案

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

重命名这些文件。 我将我的项目重命名为MvcMovie,它工作正常 在这里输入图像描述

如果您在加载共享项目(如Xamarin)时遇到问题,请记住将引用更改为csproj文件中的共享库。 我开发了一个CocosSharp游戏,Droid / iOS / WP81项目不想加载。 我不得不在每一个引用了共享库的csproj文件(Driod / iOS / WP81)中改变行。 这是由于文件夹名称发生更改而导致的,因此请将YOUR_PREVIOUS_NAMESPACEreplace为新的文件夹名称。

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

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

 <AssemblyName>YourNameSpace</AssemblyName> 

然后我加载解决scheme,并在项目属性视图中出现新名称。 重build后,与该名称生成的DLL。

您可以:

  1. 单击文件 – >新build – >从现有项目创build项目

  2. select你的原始文件,例如。 解决scheme1并input新的文件名解决scheme2

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