首页 文章

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

提问于
浏览
331

我有一个相当复杂的Visual Studio解决方案(2010年,但无所谓),我需要重命名 .

我想重命名文件夹以匹配新的解决方案名称,但我无法找到一种方法来自动重构文件夹名称,并且浏览每个项目文件将是痛苦的 .

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

17 回答

  • 0

    如果您在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源文件夹的根目录 .

  • 124

    您可以:

    • 单击文件 - >新建 - >从现有项目创建项目

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

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

  • 4

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

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

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

    enter image description here

  • 8

    Manually edit .sln file

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

    此方法不会遇到下面 Remove/add project file method 中的问题(引用消失),但如果您的项目受源代码控制,则可能会导致问题(请参阅下面的注释) . 这就是第2步(备份)如此重要的原因 .

    • 关闭Visual Studio .

    • 创建.sln文件的备份(您可以随时回滚) .

    • 想象一下,您想将目录"Project1"重命名为"Project2" .

    • 如果未使用源代码管理,请使用Windows资源管理器将文件夹从"Project1"重命名为"Project2" .

    • 如果使用源代码管理,请使用源代码管理提供的功能将文件夹从"Project1"重命名为"Project2" . 这样可以保留文件的历史记录 . 例如,使用 TortoiseSVN ,右键单击该文件,选择 TortoiseSVN .. Rename .

    • 在.sln文件中,使用文本编辑器(如NotePad)将"Project1"的所有实例编辑为"Project2" .

    • 重新启动Visual Studio,一切都将像以前一样工作,但项目位于不同的目录中 .

    您还可以看到renaming solution manuallypost which describes this manual process .

    Advantages

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

    • 此方法执行 not 删除其他项目对此文件的任何引用(优于 Remove/add project file 方法的优势,请参阅下面的其他答案) .

    Warnings

    • 在重命名任何内容之前将所有内容备份到.zip文件中很重要,因为此方法可能会产生源代码控制问题 .

    • 如果您的项目受源代码管理,如果您重命名源代码管理之外的文件或目录(使用Windows资源管理器),则可能会出现问题 . Its preferable to rename the file using the source control framework itself ,如果可以的话,保留该文件的历史记录(在右键单击时查看上下文菜单 - 它可能具有重命名文件的功能) .

    Update 2014-11-02

    ReSharper添加了一种自动方法,可以获得与上述手动方法相同的结果 . 如果命名空间用粗糙的蓝线加下划线,请单击操作金字塔图标以:

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

    • 在Windows资源管理器中重命名目录以匹配命名空间 .

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

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

    enter image description here

    Update 2018-01-31

    使用Visual Studio 2008,2010,2012,2013,2015,2017测试更新1,2,3,4,5 .

  • 2

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

  • 20

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

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

    • 在解决方案资源管理器中,右键单击项目并选择“属性” . 在“应用程序”选项卡上,更改"Assembly name"和"Default namespace" .

    • 在主cs文件(或任何其他代码文件)中,重命名命名空间声明以使用新名称 . 为此,右键单击命名空间,然后选择“重构”>“重命名”输入新名称 . 例如: 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("")]
    
    • 物理删除bin和obj目录 .

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

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

    • 清理并重建项目 .

  • 2

    使用记事本的“在文件中查找”功能对我来说很好(ctrl H,在文件中查找) .

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

  • 6

    以及这个链接的答案

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

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

  • 2

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

    • 以防万一,备份你的文件夹Project,虽然你不会碰它,但为了以防万一!

    • 创建一个新项目并使用您希望'new'项目的名称保存它,这意味着您要将'old'项目更改为的名称 .

    • 构建它 . 在那之后,你将拥有一个名为你想要的项目,但除了打开一个窗口(在我的情况下是Windows窗体应用程序)之外它什么都没有 .

    • 打开新的proyect,单击Project-> AddExistingÍtem并使用Windows资源管理器找到'old'文件夹项目,然后选择...下的所有文件:Visual Studio xxx \ Projects \ oldApp \ oldApp

    • 选择其中的所有文件(.vb,.resx)并将它们添加到'new'项目(应该已经打开的项目) .

    • 几乎最后一步是使用解决方案打开您的Project文件
      资源管理器和第一个选项卡将默认启动窗体更改为应该的形式 .

    • 重建一切 .

    也许更多的步骤,但更少或根本没有打字,只需点击一下鼠标 . 希望能帮助到你 :)

  • 2

    在WEB项目中,Visual Studio 2013上唯一适用于我的解决方案:

    让我们说我想将“project1”重命名为“project2” . 让我们说我的.sln文件的物理路径是:c:\ my \ path \ project1 \ project1.sln

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

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

    • 在解决方案资源管理器中,右键单击项目(不是解决方案!!!),选择重命名,然后输入新名称 .

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

    • 在主CS文件(或任何其他代码文件,例如Global.asax)中,重命名命名空间声明以使用新名称 . 为此,右键单击命名空间,然后选择“重构”>“重命名”输入新名称 . 例如:

    命名空间project1

    4.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(”“)]

    • 关闭Visual Studio .

    • 物理删除bin和obj目录 .

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

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

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

    • 通过重命名右键单击该SLN文件重命名SLN文件名 .

    • 然后最后打开SLN文件(在记事本或任何编辑器中)并将任何旧名称复制并替换(Ctrl h)为新名称 .

    • 打开VS,然后单击BUILD - > Clean Solution

    • 单击Build - > Build solution,然后单击F5运行...

    • 注1:如果你得到这样的结果:编译错误CS0246:找不到类型或命名空间名称'project2'(你是否缺少using指令或程序集引用?)

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

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

    • 注意2:如果您尝试对新的命名项目执行"save as"并保留旧项目,请考虑通过修改web.config中的connectionStrings以及重新启动迁移(如果项目中有一个迁移)来复制数据库 .
  • 0

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

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

  • 4

    要重命名网站:

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

    找到并编辑IISExpress的applicationhost.config,在这里找到:C:\ Users \ Documents \ IISExpress \ config

  • 2

    如果您在加载共享项目时遇到问题,例如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 .

  • 2

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

    我在CopyWiz取得了很大的成功 .

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

  • 296

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

  • 4

    Below is a step-by-step way of renaming your entire solution in Visual Studio 2013

    Assuming we're changing a project named "HelloWorld.ui" to "Section1to5.ui"

    • 转到解决方案资源管理器(下面的屏幕截图),右键单击要重命名的项目,然后选择"Rename" . 输入您想要的新名称 .

    Solution Explorer Screenshot

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

    • 在主Program.cs文件(或您可能已创建的任何其他代码文件)中,重命名命名空间声明以使用新名称 . 为此,右键单击命名空间,然后选择“重构”>“重命名”输入新名称 . 例如:

    namespace HelloWorld.ui ----> namespace Section1to5.ui

    • 接下来,展开“属性”,然后双击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 .

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

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

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

    项目(“”)=“HelloWorld.ui”,“HelloWorld.ui \ HelloWorld.ui.csproj”,“{39FC65A3-3AE7-4EC9-B8F7-74F971636C70}”

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

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

    • 您可能会注意到“调试/运行”按钮已被“附加”按钮替换 . 如果发生这种情况,只需右键单击项目并选择“设置为启动项目”选项 . 或者,单击工具>自定义>命令>添加命令>调试,然后添加按钮 .

    You're done renaming the project, if you have any doubts feel free to post and I'd be glad to help out!

  • 29

    Remove/add project file method

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

    • 使用GIT,SVN或WinZip等备份整个项目(重要!) .

    • 在Visual Studio的解决方案中,删除项目 .

    • 在Windows资源管理器中重命名该目录 .

    • 在Visual Studio中再次添加项目 .

    Advantages

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

    Disadvantages

    • 如果删除库,则会从其他项目中删除对该库的任何引用 . 在此之后,解决方案可能无法编译,直到您将引用添加到所述库中(这非常简单) . 这就是为什么第1步(备份)如此重要的原因 .

    • 如果您有源代码管理,则会丢失该文件的历史记录 .

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

相关问题