1. ホーム
  2. c#

プロジェクトやソリューション全体の未使用の名前空間を一度に削除する

2023-08-30 02:47:08

質問

ファイル単位でできるのは知っています。

プロジェクト内のすべてのファイルに対して、1つのステップでこれを行う方法はありますか?

どのように解決するのですか?

ステートメントを使用するということですか?まず、一般的に、スペースを取る以外に害はないことに注意してください。 次のようなツール ReSharper のようなツールは、これを行うための自動化されたトリックを提供します。 のリンクがありました。 が少し前にありました。それは、煮詰まります。

  • ツール -> マクロ -> マクロ IDE に移動します...
  • プロジェクトエクスプローラで、追加 -> モジュールの追加...(名前を入れてください。私はOrganiseUsingsを使いました)
  • を以下のコードで貼り付けます。
  • ファイル -> MyMacros を保存して終了します。

ここで、ツールバーを右クリックして、[カスタマイズ] を選択します。- をクリックすると、MyMacros.OrganiseUsings.RemoveAndSortAll が見つかるはずです。これを手近な場所 (おそらくツール メニュー。配置後に名前を変更したい場合もあります) にドラッグしてください。

このオプションを使用して、ソリューション全体に対して Remove and Sort コマンドを実行できるようになりました。大きな時間の節約になります。

コード ========

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