Visual Studio - 移除未使用的文件

22

想知道是否有扩展、宏或其他工具,可以检查您的解决方案,并输出一个报告,显示哪些js/css/image文件在代码中没有被引用?

我有一个大项目,随着时间的推移,它已经积累了灰尘。除了手动搜索每个文件的使用情况外,还有其他省时的方法吗?

6个回答

9

太酷了!不过这有点晚到啦 ;) - Mrchief
2
嗨,我是这个扩展的作者,刚把它更新为VS2013版。它是开源的,你可以在这里找到它:https://github.com/jitbit/vs-unused-image-finder - Alex from Jitbit
有没有类似的解决方案适用于VS Code? - undefined

5

更新 你不会找到一个可以系统地识别未使用资源的工具,因为JavaScript、CSS和图像文件可以动态加载。本文展示了如何动态加载JavaScript和CSS,在JavaScript中动态加载图像也是一项简单的任务。很容易想象出这样一种情况:图像名称从外部数据源加载,或者从另一个字段值加上".jpg"拼接而成。显然,任何试图扫描源代码以查找未引用文件的工具都会错过这些资源。

话虽如此,您可以使用Visual Studio的正则表达式搜索功能,或者使用带有正则表达式搜索功能的高级文本编辑器(如Notepad++)来搜索.js、.css和.jpg文件的硬编码引用。

例如,要使用Visual Studio搜索在ASCX或ASPX页面中引用的所有以.js结尾的文件,请转到编辑/查找和替换/在文件中查找,将搜索表达式设置为.js>,打开“使用正则表达式”开关,并将“查找这些文件类型”设置为“*.aspx; *.ascx”。(“\”转义“。”,“>”表示单词结束,以便找到“foo.js”,但不包括“foo.jsx”。Visual Studio有自己的正则表达式语法,文档在此处记录here
此外,下面原始响应中的工具可以很好地展示站点加载时实际使用的JS/CSS/IMAGE资源。当与测试工具Selenium一起使用时,这些工具应该能够让您有信心删除资源。

这里有几个工具值得一看:

WARI 扫描您的 Web 应用程序并检查 JavaScript 函数、CSS 样式、HTML 标签和图像之间的依赖关系。

其目标是找到未使用的图像以及未使用和重复的 JavaScript 函数和 CSS 样式。


你没有理解重点。那些工具有不同的用途。我需要找出那些闲置的文件,它们在代码中没有被引用,但仍然存在。这些工具只能找到在应用程序中被引用/包含的文件中未使用的内容。 - Mrchief
请看我上面的更新。我认为不可能完全确定地找到未使用的JS/CSS/Image文件,因为它们可以被现有的JavaScript动态加载。 - Dan Solovay

1

以上所选答案中的扩展仅适用于vs2012,而Code Maid适用于vs2010至vs2014:

有一个免费的扩展程序叫做Code Maid,它是一个开源的Visual Studio扩展程序,可清理、深入挖掘和简化我们的C#、C++、F#、VB、XAML、XML、ASP、HTML、CSS、LESS、SCSS、JavaScript和TypeScript编码。也可以处理图像。


1

解决方案特点

  • 是半自动的
  • 不是扩展程序
  • 看起来很长,但并不复杂或困难
  • 适用于仅图像或所有文件
  • 克服了所有ajax技巧
  • 应该适用于任何项目或Visual Studio版本

步骤

  1. 在Chrome中打开网站并打开调试模式(在启动网站之前按F12
  2. 完全使用该网站。使其下载所有将要下载的内容。
  3. 进入网络选项卡。
  4. 在文件网格上,单击列表中出现的任何图像(无论哪个)。这将使除名称以外的所有列标题消失。
  5. 单击名称列标题,以进行升序排序。
  6. CTRL+ACTRL+C复制所有文件名。
  7. 粘贴到新的Google电子表格(在Google文档中)中的单元格A2中。
  8. 如果由于任何原因未复制所有文件名,请重复步骤6和7。向下滚动。
  9. 在命令提示符中进入您实际的网站图像目录(或您感兴趣比较的任何目录),并发出dir / b。将其复制到剪贴板(标记功能),然后粘贴到单元格B2中。
  10. 在单元格C2中,粘贴此公式=not(isna(VLOOKUP(B2,$A$2:$A$TheBottomOfA,1,false)))。将TheBottomOfA更改为列A中使用的最后一行。
  11. 将公式复制到B列中的所有值。
  12. 在单元格C1中,键入已使用。在单元格B1中,键入名称。对列B和C中的所有值添加数据筛选器。使用鼠标在C1中设置筛选器,仅显示已使用= FALSE。

结果

您在B列看到的是您未使用的文件列表。

注意

我建议将未使用的文件移动到离线文件夹,而不是删除它们。

警告

您仍然需要运用常识。BRAIN=ON


1

2022 解决方案

你可以在 vscode 中使用此扩展程序查找所有未使用的导出


0

如果您正在使用新版本的Visual Studio并且无法使用扩展,那么我所做的是:

  1. 排除所有目标文件。
  2. 查找",,,"(这表示绝对资源引用)并包含找到的每个资源。请注意,您应该尝试与您的引用相关的任何唯一关键字。
  3. 重复步骤2,直到Visual Studio停止打开文件(如果没有找到新匹配项,则已经打开的文档将进入焦点)。
  4. 尝试构建项目。如果您错过了某个资源,Visual Studio会让您知道。在这种情况下,请重复步骤2-4;值得注意的是,这很少会发生。

我只需要做一次,最多花费十分钟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接