Подтвердить что ты не робот

Удалять неиспользуемые пространства имен по всему проекту или решению сразу

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

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

4b9b3361

Ответ 1

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

  • перейдите в Инструменты → Макросы → Макросы IDE...
  • в Project Explorer, Add → Add Module... (введите имя - я использовал 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

Ответ 2

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

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

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

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

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

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

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

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

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

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

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

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

Ответ 3

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

Ответ 5

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

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

Ответ 6

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

После установки вы можете найти " Удалить и отсортировать использование при сохранении" в "Инструменты → Параметры → Инструменты производительности → PowerCommands → Генералы". После проверки этой опции перезапустите VS. Теперь сохраните, и вы увидите волшебство.

Для VS 2015, посмотрите this

Ответ 7

для более новой версии, включая 2017, попробуйте расширение "Format All Files" . он отлично работает для меня.

введите описание изображения здесь

Ответ 8

Здесь небольшое улучшение для script выше для VB.NET. Убедитесь, что у вас установлен Производительность 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

Ответ 9

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

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

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

введите описание изображения здесь

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

Ответ 10

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

enter image description here