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

时间:2008-11-12 10:02:09

标签: c# namespaces

我知道你可以逐档归档。

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

10 个答案:

答案 0 :(得分:70)

其他引用Productivity Power Tools扩展的答案不会详细介绍如何实际执行此操作,因此以下是Visual Studio 2013,2015和2017的一些说明:

首先,打开工具> Visual Studio中的扩展和更新... 对话框,在左侧栏中选择在线,然后在Visual Studio库中搜索" Productivity Power Tools&#34 ; 即可。安装扩展并重新启动VS。

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

Productivity Power Tools 2013
Productivity Power Tools 2015
Productivity Power Tools 2017

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

Power Commands for Visual Studio (VS2017)

请注意,在撰写本文时,VS2017版本无法与.Net Core项目/解决方案配合使用。

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

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

更新:格式化所有文件

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

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

答案 1 :(得分:28)

VS 2017中不需要任何插件。点击任何使用声明附近的灯泡图标,然后点击Solution部分旁边的Fix all occurrences in

答案 2 :(得分:17)

你的意思是使用陈述吗?首先,请注意它们通常不会占用空间。 像ReSharper这样的工具提供了自动化技巧,但是:不久之前有一个link in the VS feed;归结为:

  • 转到工具 - >宏 - >宏IDE ...
  • 项目浏览器中的
  • ,添加 - >添加模块...(放入名称 - 我使用了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

答案 3 :(得分:8)

对于Visual Studio 2010,您可以从Visual Studio库中下载“删除并排序使用”扩展名。

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

适合我的工作

答案 4 :(得分:4)

如果您的意思是'使用'电源命令包含此功能+船载更多。

http://code.msdn.microsoft.com/PowerCommands

答案 5 :(得分:3)

对于包含2017年的更新版本,请尝试"Format All Files"扩展程序。它对我来说真的很好。

enter image description here

答案 6 :(得分:2)

以上是VB.NET上面脚本的一个小改进。确保已安装Productivity Power Tools

    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)

        ElseIf projectItem.Name.LastIndexOf(".vb") = projectItem.Name.Length - 3 Then
            Dim window As Window = projectItem.Open(Constants.vsViewKindCode)

            window.Activate()

            projectItem.Document.DTE.ExecuteCommand("EditorContextMenus.CodeWindow.OrganizeImports.RemoveandSortImports")

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

答案 7 :(得分:1)

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

enter image description here

答案 8 :(得分:0)

我正在使用Visual Studio 2015并找到一个名为BatchFormat的工具: https://marketplace.visualstudio.com/items?itemName=vs-publisher-147549.BatchFormat

这完美地完成了这项工作。

安装该工具,然后右键单击解决方案资源管理器中的解决方案,然后在菜单顶部看到批处理格式:

enter image description here

您选择的任何内容都应用于解决方案中的每个文件,如屏幕截图所示,还有其他选项,您也可以格式化每个文档。

答案 9 :(得分:0)

Visual Studio 2017具有内置功能,可从整个项目中删除不必要的名称空间。

enter image description here