Удалить неиспользуемые пространства имен сразу по всему проекту или решению - PullRequest
52 голосов
/ 12 ноября 2008

Я знаю, что вы можете сделать это файл за файлом.

Есть ли способ сделать это за один шаг для всех файлов в проекте?

Ответы [ 10 ]

70 голосов
/ 25 февраля 2016

Другие ответы, которые относятся к расширениям Productivity Power Tools, не содержат подробностей о том, как на самом деле это сделать, поэтому вот некоторые инструкции для Visual Studio 2013, 2015 и 2017:

Сначала откройте диалоговое окно Инструменты> Расширения и обновления ... в Visual Studio, выберите Онлайн на левой панели, а затем выполните поиск в галерее Visual Studio для поиска * 1007. * «Производительность электроинструмента» . Установите расширение и перезапустите VS.

Кроме того, вы можете вручную загрузить и установить расширения для вашей версии Visual Studio:

Производительность электроинструмента 2013
Производительность электроинструмента 2015
Производительность Электроинструмента 2017

Для VS2017 вы также можете скачать расширение Power Commands отдельно от других в пакете Power Tools:

Команды питания для Visual Studio (VS2017)

Помните, что на момент написания этой статьи версия VS2017 не работала с проектами / решениями .Net Core.

После установки расширения просто щелкните правой кнопкой мыши решение в обозревателе решений и выберите Команды питания> Удалить и отсортировать использования .

Это может занять некоторое время, особенно на больших решениях; он также не сохраняет измененные файлы открытыми (следовательно, не отменяет), поэтому убедитесь, что вы зафиксировали все в выбранной VCS до запуска его , чтобы вы могли отменить изменения делает, если что-то пойдет не так!

Обновление: форматирование всех файлов

Недавно я использовал расширение Форматировать все файлы , которое позволяет выполнять Форматировать документ , Использовать удаление и сортировку и еще одну пользовательскую команду на ваш выбор (все необязательно, установите в настройках VS).

Кажется, что он работает очень хорошо, но опять же, нет отмены, поэтому убедитесь, что вы зафиксировали все в выбранной вами VCS до запуска .

28 голосов
/ 01 июня 2018

Никаких плагинов в VS 2017 не требуется. Щелкните значок лампочки рядом с любым оператором использования и нажмите Solution рядом с Fix all occurrences in деталь.

17 голосов
/ 12 ноября 2008

Вы имеете в виду использование утверждений? Во-первых, обратите внимание, что они обычно не причиняют вреда другим, занимающим место. Такие инструменты, как ReSharper , предлагают автоматизированные приемы, чтобы сделать это, однако: некоторое время назад в ленте VS была ссылка ; сводится к:

  • перейдите в Инструменты -> Макросы -> Макросы IDE ...
  • в Project Explorer, Добавить -> Добавить модуль ... (введите имя - я использовал OrganiseUsings)
  • вставить с кодом ниже
  • Файл -> Сохранить MyMacros, выход

Теперь, если вы щелкнете правой кнопкой мыши на панели инструментов и настроите ... - вы сможете найти MyMacros.OrganiseUsings.RemoveAndSortAll - перетащите его куда-нибудь под рукой (возможно, в меню Сервис; возможно, вы захотите изменить имя после размещения это).

Теперь вы можете использовать эту опцию для запуска команды «Удалить и отсортировать» для всего решения. Большая экономия времени.

==== code ====

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
8 голосов
/ 21 апреля 2011

Для Visual Studio 2010 вы можете загрузить расширение «Удалить и отсортировать» из галереи Visual Studio.

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

Хорошо работает для меня

4 голосов
/ 12 ноября 2008

Если вы имеете в виду, что «использование» Power Commands содержит эту функцию + нагрузка на лодку больше.

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

3 голосов
/ 27 апреля 2017

для более новой версии, включая 2017, попробуйте расширение «Форматировать все файлы» . это работало очень хорошо для меня.

enter image description here

3 голосов
/ 16 августа 2015

Производительность Электроинструменты - это то, что вам нужно. https://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a48a15e4cace

После того, как вы это установили, вы можете найти « Удаление и сортировка при сохранении» в «Инструменты -> Параметры -> Инструменты управления производительностью -> PowerCommands -> Общие ». После того, как вы проверите эту опцию, перезапустите VS. Теперь сохраните, и вы увидите магию.

Для VS 2015 взгляните на this

2 голосов
/ 10 мая 2012

Вот небольшое улучшение скрипта выше для VB.NET. Убедитесь, что у вас установлены Инструменты для повышения производительности .

    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
0 голосов
/ 15 апреля 2019

Visual Studio 2017 со встроенной функцией удаления ненужного пространства имен из всего проекта.

enter image description here

0 голосов
/ 09 февраля 2017

Я использую Visual Studio 2015 и нашел инструмент с именем BatchFormat: https://marketplace.visualstudio.com/items?itemName=vs-publisher-147549.BatchFormat

Это отлично сработало.

Установите инструмент, затем щелкните правой кнопкой мыши свое решение в обозревателе решений, затем в верхней части меню отобразится пакетный формат:

enter image description here

Что бы вы ни выбрали, оно будет применено к каждому файлу в вашем решении, как вы можете видеть на скриншоте, есть и другие варианты, вы также можете отформатировать каждый документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...