78

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

有没有办法一步一步对项目中的所有文件执行此操作?

4

11 回答 11

109

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

解决方案截图

于 2018-05-31T21:05:17.117 回答
87

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

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

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

生产力电动工具 2013
生产力电动工具 2015
生产力电动工具 2017/2019

对于 VS2017 和 VS2019,您还可以在 Power Tools 包中与其他扩展分开下载 Power Commands 扩展:

Visual Studio 的电源命令

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

安装扩展后,只需右键单击解决方案资源管理器中的解决方案,然后选择Power Commands > Remove and Sort Usings

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

更新:格式化所有文件

最近我一直在使用Format All Files扩展名,它允许您执行Format DocumentRemove 和 Sort Usings以及您选择的另一个自定义命令(所有这些都是可选的,在 VS 首选项中设置)。

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

于 2016-02-25T06:18:53.023 回答
19

你的意思是使用语句吗?首先,请注意,它们通常不会伤害其他占用空间的东西。然而,像ReSharper这样的工具提供了自动化的技巧来做到这一点:不久前VS 提要中有一个链接;它归结为:

  • 转到工具 -> 宏 -> 宏 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
于 2008-11-12T10:06:59.997 回答
9

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

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

适合我

于 2011-04-21T13:58:30.157 回答
4

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

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

于 2008-11-12T10:11:30.877 回答
3

生产力 电动工具正是您所需要的。 https://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a48a15e4cace

安装完成后,您可以从“工具 -> 选项 -> Productivity Power Tools -> PowerCommands -> Generals”中找到“<strong>Remove and Sort Usings on Save”。检查该选项后,重新启动 VS。现在保存,你会看到魔法。

对于 VS 2015,看看这个

于 2015-08-16T08:09:51.793 回答
3

对于更新的版本,包括 2017,请尝试“格式化所有文件”扩展名。它对我来说效果很好。

在此处输入图像描述

于 2017-04-27T16:56:43.323 回答
3

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

在此处输入图像描述

于 2021-01-10T22:02:29.247 回答
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
于 2012-05-10T09:25:52.493 回答
0

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

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

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

在此处输入图像描述

无论您选择什么,都将应用于解决方案中的每个文件,正如您在屏幕截图中看到的那样,还有其他选项,您还可以格式化每个文档。

于 2017-02-09T14:37:19.943 回答
0

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

在此处输入图像描述

于 2019-04-15T07:02:01.617 回答