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