一次删除整个项目或解决方案中未使用的命名空间

leo*_*ora 57 c# namespaces

我知道你可以逐个文件地做.

有没有办法在一个步骤中为项目中的所有文件执行此操作?

Mar*_*ell 75

其他涉及Productivity Power Tools扩展的答案没有详细说明如何实际执行此操作,因此以下是Visual Studio 2013,2015和2017的一些说明:

首先,在Visual Studio中打开Tools> Extensions and Updates ...对话框,在左侧栏中选择Online,然后在Visual Studio Gallery中搜索"Productivity Power Tools".安装扩展并重新启动VS.

或者,您可以手动下载并安装适用于您的Visual Studio版本的扩展:

生产力Power Tools 2013
生产力电动工具2015 生产力2017
电动工具

对于VS2017,您还可以单独从Power Tools包中的其他扩展下载Power Commands扩展:

Visual Studio的电源命令(VS2017)

请注意,在撰写本文时,VS2017版本不适用于.Net Core项目/解决方案.

安装扩展后,只需在解决方案资源管理器中右键单击解决方案,然后选择" 电源命令">"删除并排序使用".

这可能需要一段时间,特别是在大型解决方案上; 它也不会保持修改后的文件打开(因此不会撤消),因此请确保运行之前提交所选VCS中的所有内容,以便在出现问题时还原其所做的更改!

更新:格式化所有文件

最近我一直在使用Format All Files扩展,它允许您执行格式文档,删除和排序使用以及您选择的另一个自定义命令(所有这些都可选,在VS首选项中设置).

它似乎工作得非常好,但同样没有撤消,因此请确保运行之前在您选择的VCS中提交所有内容.

  • 另外一个用于添加当前版本和先前版本的链接.脓液一个提供步骤,即使它们是简单的. (3认同)

sot*_*otn 46

VS 2017中不需要任何插件.单击任何using语句附近的灯泡图标,然后单击part Solution旁边的Fix all occurrences in.

  • 这是一个更好的解决方案,因为公认的答案是IDE本身的。确认在VS 2019中工作 (8认同)
  • 更高版本没有像以前那样的灯泡,但右键单击“using”语句,然后(灯泡)“快速操作和重构...”将为您提供在整个解决方案中删除使用的选项。 (3认同)
  • 天哪,我是如此盲目。一直以来一直使用灯泡,现在才注意到可以将这些操作应用于整个项目/解决方案。 (2认同)

Mar*_*ell 18

你的意思是使用陈述吗?首先,请注意它们通常不会占用空间.像ReSharper这样的工具提供了自动化的技巧来实现这一点,但是:前一段时间里,VS feed中有一个链接 ; 归结为:

  • 转到工具 - >宏 - >宏IDE ...
  • 在Project Explorer中,添加 - >添加模块...(放入名称 - 我使用了OrganiseUsings)
  • 粘贴以下代码
  • 文件 - >保存MyMacros,退出

现在,如果您右键单击工具栏并自定义... - 您应该能够找到MyMacros.OrganiseUsings.RemoveAndSortAll - 将其拖到方便的地方(可能是工具菜单;您可能还想在放置后更改名称).

您现在可以使用此选项为整个解决方案运行"删除和排序"命令.节省大量时间.

====代码====

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module OrganiseUsings

    Public Sub RemoveAndSortAll()
        On Error Resume Next
        Dim sol As Solution = DTE.Solution

        For i As Integer = 1 To sol.Projects.Count    
            Dim proj As Project = sol.Projects.Item(i)    
            For j As Integer = 1 To proj.ProjectItems.Count    
                RemoveAndSortSome(proj.ProjectItems.Item(j))    
            Next    
        Next    
    End Sub    

    Private Sub RemoveAndSortSome(ByVal projectItem As ProjectItem)
        On Error Resume Next
        If projectItem.Kind = Constants.vsProjectItemKindPhysicalFile Then    
            If projectItem.Name.LastIndexOf(".cs") = projectItem.Name.Length - 3 Then
                Dim window As Window = projectItem.Open(Constants.vsViewKindCode)

                window.Activate()

                projectItem.Document.DTE.ExecuteCommand("Edit.RemoveAndSort")

                window.Close(vsSaveChanges.vsSaveChangesYes)
            End If    
        End If    

        For i As Integer = 1 To projectItem.ProjectItems.Count    
            RemoveAndSortSome(projectItem.ProjectItems.Item(i))    
        Next
    End Sub   

End Module
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,不支持Visual Studio 2012作为宏的运气:( (7认同)

Mur*_*HAN 13

分析菜单下有一个内置功能,称为代码清理。如果您单击配置文件 1,它将执行删除和排序功能。

在此输入图像描述


vma*_*cek 9

对于Visual Studio 2010,您可以从Visual Studio库中下载"删除并排序使用"扩展.

http://visualstudiogallery.msdn.microsoft.com/en-us/cb559aa8-d976-4cc2-9754-5a712f985d16

适合我