web-dev-qa-db-fra.com

Supprimer les utilisations inutilisées sur l'ensemble de l'assemblage

Je me demande si peut-être ReSharper est capable de parcourir toutes les classes et de supprimer les utilisations inutilisées? J'ai regardé mais je ne vois pas une option comme celle-ci dans R # 4.5. Quelqu'un a-t-il vu cela dans Resharper en dehors du simple fait de pouvoir supprimer les utilisations dans une seule classe?

53
PositiveGuy

Je pense que le nettoyage d'un projet est une nouvelle fonctionnalité de ReSharper 5.

Je reprends cela, la fonctionnalité est dans ReSharper 4.5. Si vous faites un clic droit sur la solution, il y a un élément Code de nettoyage ..., qui vous permet d'appliquer un profil de nettoyage à la solution. Vous pouvez créer un nouveau profil de nettoyage à partir du nœud Code Cleanup dans les options ReSharper, si vous souhaitez qu'un profil ajuste simplement les directives using.

44
bdukes

Depuis Resharper 9, vous pouvez simplement sélectionner la portée "en solution" lorsque vous nettoyez un bloc à l'aide.

enter image description here

89
Kornél Regius

Il y a aussi ne autre façon que j'ai trouvée ici, en utilisant des macros.

Étape 1: créer une nouvelle macro dans Visual Studio via les outils | Menu des macros.

Étape 2: collez le code ci-dessous dans le module et enregistrez-le

Public Module Module1
    Sub OrganizeSolution()
        Dim sol As Solution = DTE.Solution
        For i As Integer = 1 To sol.Projects.Count
            OrganizeProject(sol.Projects.Item(i))
        Next
    End Sub

    Private Sub OrganizeProject(ByVal proj As Project)
        For i As Integer = 1 To proj.ProjectItems.Count
            OrganizeProjectItem(proj.ProjectItems.Item(i))
        Next
    End Sub

    Private Sub OrganizeProjectItem(ByVal projectItem As ProjectItem)
        Dim fileIsOpen As Boolean = False
        If projectItem.Kind = Constants.vsProjectItemKindPhysicalFile Then
            'If this is a c# file 
            If projectItem.Name.LastIndexOf(".cs") = projectItem.Name.Length - 3 Then
                'Set flag to true if file is already open 
                fileIsOpen = projectItem.IsOpen
                Dim window As Window = projectItem.Open(Constants.vsViewKindCode)
                window.Activate()
                projectItem.Document.DTE.ExecuteCommand("Edit.RemoveAndSort")
                'Only close the file if it was not already open 
                If Not fileIsOpen Then
                    window.Close(vsSaveChanges.vsSaveChangesYes)
                End If
            End If
        End If
        'Be sure to apply RemoveAndSort on all of the ProjectItems. 
        If Not projectItem.ProjectItems Is Nothing Then
            For i As Integer = 1 To projectItem.ProjectItems.Count
                OrganizeProjectItem(projectItem.ProjectItems.Item(i))
            Next
        End If
        'Apply RemoveAndSort on a SubProject if it exists. 
        If Not projectItem.SubProject Is Nothing Then
            OrganizeProject(projectItem.SubProject)
        End If
    End Sub
End Module

Étape 3: exécutez la macro sur n'importe quelle solution que vous souhaitez et vous l'avez! Prendre plaisir :)

5
Larry