Visual Studio - удаление неиспользуемых файлов
Интересно, есть ли расширение или макрос или что-то, что просматривает ваше решение, и выдает отчет о том, какие файлы js/css/image не ссылаются нигде в коде?
У меня большой проект, и со временем он накопил пыль. Помимо ручного поиска для каждого использования файла, есть ли другой способ экономии времени?
Ответы
Ответ 1
Существует расширение Visual Studio, которое ищет файлы изображений без ссылок. Он находит все файлы изображений в вашем проекте, а затем просматривает все файлы aspx/cs/ashx/css/js для ссылок. Он еще не обновлен для Visual Studio 2012.
http://visualstudiogallery.msdn.microsoft.com/fb7a9b9c-08e1-4bb4-91b4-8e512feb5a1b
Ответ 2
Обновить. Вы не найдете инструмент, который может систематически идентифицировать неиспользуемые ресурсы, поскольку файлы JavaScript, CSS и изображения могут загружаться динамически. В этой статье показано, как загружать JavaScript и CSS динамически, и в JavaScript для простой загрузки загружается изображение. Легко представить сценарий, в котором имя изображения загружается из внешнего источника данных или объединено с другим значением поля плюс ".jpg" . Очевидно, что любой инструмент, который пытался отсканировать исходный код, чтобы найти файлы без ссылок, пропустит эти ресурсы.
Таким образом, вы можете искать жестко закодированные ссылки на файлы .js,.css и .jpg, используя поиск в Visual Studio с помощью функции регулярного выражения, или с помощью мощного текстового редактора, такого как Notepad ++, с обычным выражением особенность.
Например, чтобы использовать Visual Studio для поиска всех файлов, заканчивающихся на .js, на которые ссылаются страницы ASCX ir ASPX, перейдите в раздел "Редактировать/найти и заменить/найти в файлах", установите выражение поиска .js > включить
"Использовать регулярные выражения" и установите "Посмотрите в эти типы файлов" на "*.aspx; *.ascx".
( "\" выходит из ".", а " > " означает конец слова, так что "foo.js" найден, но не "foo.jsx". Visual Studio имеет свой собственный синтаксис регулярного выражения, который документирован здесь)
Кроме того, инструменты в моем первоначальном ответе ниже могут дать хорошее представление о том, какие ресурсы JS/CSS/IMAGE действительно используются, когда ваш сайт загружен. При использовании в сочетании с инструментом тестирования, например Selenium, это должно позволить вам с уверенностью удалять ресурсы.
Есть несколько инструментов, на которые вы должны обратить внимание:
WARI сканирует ваше веб-приложение и анализирует зависимости между функциями JavaScript, стилями CSS, тегами HTML и изображениями.
Цель состоит в том, чтобы найти неиспользуемые изображения, а также неиспользуемые и дублированные функции JavaScript и стили CSS.
Ответ 3
Функции решения
- является полуавтоматическим
- не является расширением
- выглядит долго, но не сложно или сложно.
- работает только для изображений или всех файлов
- преодолевает все трюки ajax
- должен работать с любым проектом или версией Visual Studio
Шаги
- Запустите веб-сайт в Chrome с включенной отладкой (нажмите F12 перед запуском веб-сайта)
- Полностью выполните веб-сайт. Загрузите все, что он когда-либо будет загружать.
- Перейдите на вкладку Сеть.
- В сетке файлов щелкните по любому из изображений, которые отображаются в списке (неважно, какой из них). Это приведет к тому, что все заголовки столбцов, но Имя исчезнут.
- Нажмите заголовок столбца Имя, чтобы отсортировать его по возрастанию.
- Сделайте CTRL + A, CTRL + C, чтобы скопировать все имена файлов.
- Вставить в новую таблицу Google (в документах google) в ячейку A2.
- Повторите шаги 6 и 7, если по какой-либо причине он не скопировал все имена файлов. Прокрутите вниз.
- Перейдите в каталог фактических веб-сайтов изображений (или любой другой каталог, который вы хотите сравнить) в командной строке и введите
dir /b
. Скопируйте это в буфер обмена (функция метки) и вставьте в ячейку B2.
- В ячейке C2 вставьте эту формулу
=not(isna(VLOOKUP(B2,$A$2:$A$TheBottomOfA,1,false)))
. Alter TheBottomOfA будет последней используемой строкой в столбце A.
- Скопируйте формулу вниз для всех ваших значений в столбце B.
- В ячейке C1 используется . В ячейке B1 введите Имя. Добавьте фильтр данных для всех значений в столбцах B и C. Установите фильтр с помощью мыши в C1, чтобы показывать только Используется= FALSE.
Результат
То, что вы смотрите в столбце B, - это список файлов, которые вы не используете.
Примечание
Я рекомендую переместить неиспользуемые файлы в автономную папку, а не удалять их.
Внимание
Вам все равно нужно использовать здравый смысл. BRAIN=ON
Ответ 4
Расширение в выбранном ответе выше работает только в vs2012, а Code Maid работает в vs2010 - vs2014:
Существует свободное расширение Code Maid, что "это расширение Visual Studio для Visual Studio, и упростите наши кодировки С#, С++, F #, VB, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript и TypeScript". Изображения также.
Ответ 5
Если вы используете новую версию Visual Studio и не можете использовать расширения, я сделал следующее:
- Исключить все целевые файлы.
- Найти ",," (это указывает абсолютную ссылку на ресурс) и включить каждый найденный ресурс. Обратите внимание, что вы должны попробовать любые уникальные ключевые слова, относящиеся к вашим ссылкам.
- Повторите шаг 2, пока Visual Studio не прекратит открывать файлы (если новые совпадения не найдены, уже открытые документы будут в фокусе).
- Попробуйте построить проект. Если вам не хватает ресурса, Visual Studio сообщит вам об этом. В этом случае повторите шаги 2-4; это ничего не стоит, что редко будет когда-либо понадобиться.
Мне нужно было сделать это только один раз, и я провел максимум десять минут.