78

ファイルごとに実行できることは知っています。

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

4

11 に答える 11

87

Productivity Power Tools の拡張機能に関する他の回答では、実際にこれを行う方法について詳しく説明していないため、Visual Studio 2013、2015、2017、および 2019 の手順を次に示します。

まず、Visual Studio で [ツール] > [拡張機能と更新プログラム... ] ダイアログを開き、左側のバーで[オンライン] を選択してから、Visual Studio ギャラリーで"Productivity Power Tools"を検索します。拡張機能をインストールし、VS を再起動します。

または、Visual Studio のバージョンの拡張機能を手動でダウンロードしてインストールすることもできます。

Productivity Power Tools 2013
Productivity Power Tools 2015
Productivity Power Tools 2017/2019

VS2017 および VS2019 の場合、Power Commands 拡張機能を他の Power Tools パックとは別にダウンロードすることもできます。

Visual Studio のパワー コマンド

執筆時点では、VS2017 バージョンは .Net Core プロジェクト/ソリューションでは動作しないことに注意してください。

拡張機能をインストールしたら、ソリューション エクスプローラーでソリューションを右クリックし、 [ Power Commands] > [Remove and Sort Usings ] を選択します。

これには、特に大規模なソリューションでは時間がかかる場合があります。また、変更されたファイルを開いたままにしません (したがって、元に戻すことはできません)。そのため、実行する前に、選択した VCS ですべてをコミットしてください

更新: すべてのファイルをフォーマットする

最近、Format All Files拡張機能を使用しています。これにより、Format DocumentRemove and Sort Usings、および選択した他のカスタムコマンドを実行できます (すべてオプションで、VS 設定で設定されます)。

非常にうまく機能しているように見えますが、元に戻すことはできません。実行する前に、選択した VCS ですべてをコミットしてください

于 2016-02-25T06:18:53.023 に答える
19

ステートメントを使用するということですか?最初に、それらは通常、スペースを取る他のものに害を及ぼさないことに注意してください。ただし、 ReSharperのようなツールは、これを行うための自動化されたトリックを提供します。少し前に VS フィードにリンクがありました。要約すると、次のようになります。

  • [ツール] -> [マクロ] -> [マクロ IDE...] に移動します。
  • プロジェクト エクスプローラーで、追加 -> モジュールの追加... (名前を入力 - 私は 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
于 2008-11-12T10:06:59.997 に答える
9

Visual Studio 2010の場合、VisualStudioGalleryから「RemoveandSortUsing」拡張機能をダウンロードできます。

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

私にとってはうまくいく

于 2011-04-21T13:58:30.157 に答える
4

パワーコマンドを「使用する」ことを意味する場合、この機能とボートの負荷がさらに含まれます。

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

于 2008-11-12T10:11:30.877 に答える
2

上記のスクリプトを VB.NET 用に少し改良したものを次に示します。Productivity 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
于 2012-05-10T09:25:52.493 に答える