我知道你可以逐个文件地做。
有没有办法一步一步对项目中的所有文件执行此操作?
其他引用 Productivity Power Tools 扩展的答案没有详细说明如何实际执行此操作,因此以下是 Visual Studio 2013、2015、2017 和 2019 的一些说明:
首先,在 Visual Studio 中打开Tools > Extensions and Updates...对话框,在左侧栏中选择Online ,然后在 Visual Studio Gallery 中搜索“Productivity Power Tools”。安装扩展并重新启动 VS。
或者,您可以手动下载并安装适用于您的 Visual Studio 版本的扩展:
生产力电动工具 2013
生产力电动工具 2015
生产力电动工具 2017/2019
对于 VS2017 和 VS2019,您还可以在 Power Tools 包中与其他扩展分开下载 Power Commands 扩展:
请注意,在撰写本文时,VS2017 版本不适用于 .Net Core 项目/解决方案。
安装扩展后,只需右键单击解决方案资源管理器中的解决方案,然后选择Power Commands > Remove and Sort Usings。
这可能需要一段时间,尤其是在大型解决方案上;它也不会使修改后的文件保持打开状态(因此无法撤消),因此请确保在运行之前提交您选择的 VCS 中的所有内容,以便在出现问题时恢复它所做的更改!
最近我一直在使用Format All Files扩展名,它允许您执行Format Document、Remove 和 Sort Usings以及您选择的另一个自定义命令(所有这些都是可选的,在 VS 首选项中设置)。
它似乎工作得很好,但同样不能撤消,因此请确保在运行之前在您选择的 VCS 中提交所有内容。
你的意思是使用语句吗?首先,请注意,它们通常不会伤害其他占用空间的东西。然而,像ReSharper这样的工具提供了自动化的技巧来做到这一点:不久前VS 提要中有一个链接;它归结为:
现在,如果您右键单击工具栏并自定义... - 您应该能够找到 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
对于 Visual Studio 2010,您可以从 Visual Studio 库下载“删除和排序使用”扩展。
http://visualstudiogallery.msdn.microsoft.com/en-us/cb559aa8-d976-4cc2-9754-5a712f985d16
适合我
如果您的意思是“使用”电源命令包含此功能 + 船载更多。
生产力 电动工具正是您所需要的。 https://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a48a15e4cace
安装完成后,您可以从“工具 -> 选项 -> Productivity Power Tools -> PowerCommands -> Generals”中找到“<strong>Remove and Sort Usings on Save”。检查该选项后,重新启动 VS。现在保存,你会看到魔法。
对于 VS 2015,看看这个
对于更新的版本,包括 2017,请尝试“格式化所有文件”扩展名。它对我来说效果很好。
这是对上述 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
我正在使用 Visual Studio 2015 并找到了一个名为 BatchFormat 的工具: https ://marketplace.visualstudio.com/items?itemName=vs-publisher-147549.BatchFormat
这完美地完成了这项工作。
安装该工具,然后在解决方案资源管理器中右键单击您的解决方案,然后在菜单顶部您会看到批处理格式:
无论您选择什么,都将应用于解决方案中的每个文件,正如您在屏幕截图中看到的那样,还有其他选项,您还可以格式化每个文档。