2011-04-14 373 views
16

想知道是否有擴展或宏或者看起來通過您的解決方案,並給出了哪些js/css /圖像文件沒有被引用在代碼中的任何地方的報告?Visual Studio - 刪除未使用的文件

我有一個大型項目,隨着時間的推移它積累了灰塵。除了手動搜索每個文件的用法外,還有其他節省時間的方法嗎?

回答

7

有一個Visual Studio擴展,搜索未引用的圖像文件。它會查找項目中的所有圖像文件,然後掃描所有aspx/cs/ashx/css/js文件以供參考。它尚未針對Visual Studio 2012進行更新。

http://visualstudiogallery.msdn.microsoft.com/fb7a9b9c-08e1-4bb4-91b4-8e512feb5a1b

+0

酷!這雖然有點太晚;) – Mrchief 2013-02-28 15:00:24

+2

嗨,我是這個擴展的作者,只是更新到VS2013。它是開源的,你可以在這裏找到它:https://github.com/jitbit/vs-unused-image-finder – Alex 2016-01-18 17:49:03

3

更新由於可以動態加載JavaScript,CSS和圖像文件,因此您不會找到可以系統地識別未使用的資源的工具。 This文章展示瞭如何動態加載JavaScript和CSS,並且在JavaScript中動態加載圖像是一項簡單的任務。很容易想象一個場景,其中圖像名稱是從外部數據源加載的,或者是從另一個字段值加上「.jpg」連接而成的。顯然,任何嘗試掃描源以查找未引用文件的工具都會錯過這些資源。

也就是說,您可以使用Visual Studio通過正則表達式功能進行搜索或使用高性能文本編輯器(如帶有正則表達式的Notepad ++)來搜索.js,.css和.jpg文件的硬編碼引用搜索功能。

例如,要使用Visual Studio搜索ASCX IR ASPX頁面中引用的所有以.js結尾的文件,請轉至編輯/查找並替換/在文件中查找,將搜索表達式設置爲.js>開啓 「使用正則表達式」,並將「查看這些文件類型」設置爲「* .aspx; * .ascx」。 (「\」轉義「。」,「>」表示詞的結尾,以便找到「foo.js」,但不是「foo.jsx」。Visual Studio有自己的正則表達式語法, here

另外,下面我的原始響應中的工具可以很好地描述當您的站點加載時實際使用的JS/CSS/IMAGE資源。當與Selenium這樣的測試工具配合使用時,這些應該可以讓您放心地移除資源。


有幾個工具,你應該看看:

瓦里掃描你的Web應用程序和JavaScript函數,CSS樣式,HTML標記和圖像之間的依賴關係檢查。

目標是找到未使用的圖像以及未使用和重複的JavaScript函數和CSS樣式。

+0

你錯過了這一點。這些工具有不同的用途。我需要找出未使用的文件,這些文件在代碼中沒有引用。這些工具只能找出應用程序中引用/包含的文件中未使用的內容。 – Mrchief 2011-04-23 13:32:11

+0

看到我上面的更新。我不認爲可以完全確定地找到未使用的JS/CSS/Image文件,因爲它們可以通過現有的JavaScript動態加載。 – 2011-05-07 04:33:15

0

中僅高於所選答案的擴建工程在vs2012而代碼女僕工作在VS2010 - vs2014:

有一個免費的擴展名爲Code Maid說:「是一個開放源代碼的Visual Studio擴展清理,挖掘並簡化我們的C#,C++,F#,VB,XAML,XML,ASP,HTML,CSS,LESS,SCSS,JavaScript和TypeScript編碼。圖像也是如此。

1

方案特點

  • 是半 - 手動
  • 是不是一個擴展
  • 看起來長,但並不複雜或難以
  • 作品不僅僅是圖像或所有文件
  • 克服所有的AJAX技巧
  • 應該與任何項目或版本的Visual St UDIO

步驟

  1. 運行的網站在Chrome中(推出網站之前按F12)開啓調試
  2. 完全行使的網站。讓它下載它將要下載的所有內容。
  3. 轉至網絡選項卡。
  4. 在文件網格上,單擊出現在列表中的任何圖像(哪一個不重要)。這將使所有列標題,但名稱消失。
  5. 點擊名稱列標題,按升序排序。
  6. CTRL +一個CTRL +Ç複製所有文件名。
  7. 粘貼到新的Google電子表格(在google文檔中)到單元格A2
  8. 如果因任何原因沒有複製所有文件名,請重複步驟6和7。向下滾動。
  9. 在命令提示符下進入您的實際網站圖像目錄(或任何您感興趣比較的目錄)併發出dir /b。將其複製到剪貼板(標記功能)並粘貼到單元格B2
  10. 在單元格C2中,粘貼此公式=not(isna(VLOOKUP(B2,$A$2:$A$TheBottomOfA,1,false)))。 Alter TheBottomOfA成爲A列中最後一次使用的行。
  11. 將公式向下複製到列B的所有值中。
  12. 單元格C1,類型使用。在單元B1,類型名稱。在列B和C中的所有值上添加數據過濾器。使用鼠標在C1中設置過濾器僅顯示使用 = FALSE。

結果

您正在尋找在列什麼是你不使用的文件列表。

注意

我建議不用的文件移動到脫機文件夾,而不是刪除它們。

警告

您仍然需要使用常識。 BRAIN=ON

0

如果你正在使用Visual Studio的新版本,而不能使用的擴展,我所做的就是這樣的:

  1. 排除所有的目標文件。
  2. 查找「,,,」(這表示絕對資源引用)幷包括找到的每個資源。請注意,您應該嘗試與您的參考文獻相關的任何唯一關鍵字
  3. 重複步驟2,直到Visual Studio停止打開文件(如果沒有找到新的匹配項,則已打開的文檔將進入焦點)。
  4. 嘗試建設項目。如果您碰巧錯過資源,Visual Studio會通知您。在這種情況下,重複步驟2-4;這是不值得的,這是不值得的。

我只需要做一次,我最多花了十分鐘。

相關問題