当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《一次删除整个项目或解决方案中未使用的命名空间》经验,为你挑选了4个好方法。

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

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



1> Mark Bell..:

其他涉及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中提交所有内容.


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

2> sotn..:

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


这是一个更好的解决方案,因为公认的答案是IDE本身的。确认在VS 2019中工作
天哪,我是如此盲目。一直以来一直使用灯泡,现在才注意到可以将这些操作应用于整个项目/解决方案。

3> Marc Gravell..:

你的意思是使用陈述吗?首先,请注意它们通常不会占用空间.像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


不幸的是,不支持Visual Studio 2012作为宏的运气:(

4> vmachacek..:

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

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

适合我

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有