Как удалить дубликаты записей из веб-проекта visual studio? - PullRequest
4 голосов
/ 07 августа 2009

Я работаю в большой команде с несколькими ветками и слияниями, происходящими на регулярной основе.

Одна вещь, которая происходит на регулярной основе, заключается в том, что файлы веб-проектов заканчиваются дублирующимися записями для статического содержимого (.js, favicon.ico и т. Д.).

У меня есть два способа удаления дубликатов:

  1. Удалите элемент в Project Explorer (который удаляет все записи, а также файл на диске), затем снова получите файл из системы контроля версий и добавьте его обратно.
  2. Выгрузите файл проекта, найдите дубликаты, удалите их (надеясь, что они расположены рядом друг с другом), затем перезагрузите проект.

Оба утомительны, и я не удовлетворен ими - у вас есть лучший / быстрый / быстрый метод?

Ответы [ 2 ]

5 голосов
/ 07 августа 2009

Самый простой способ - просто щелкнуть правой кнопкой мыши дубликат и выбрать опцию «Исключить из проекта». Дубликат исчезнет после обновления проекта.

0 голосов
/ 19 июня 2018

Для настольных приложений самым раздражающим является то, что VS сообщает вам только о первом дубликате, с которым сталкивается, и вам приходится перестраивать снова и снова после каждого исправления.Вот простой скрипт LINQ pad, который я использую, когда мне нужно очистить вещи после слияний:

var hash = new HashSet<string>();
using (var fs = File.OpenRead(@"path\to\csproj\file"))
using (var sr = new StreamReader(fs))
{
     while (!sr.EndOfStream)
     {
        var line = sr.ReadLine().Trim();
        if (line.StartsWith(@"<Reference") || line.StartsWith(@"<Compile") || line.StartsWith(@"<Page"))
        {
            if (!hash.Add(line))
            {
                line.Dump();
            }
        }
     }
}

В нем перечислены все дубликаты, найденные в файле .csproj (то, что я хотел бы, чтобы VS делал самостоятельносейчас, ну да ладно, может через 10 лет).Вам все равно придется удалять дубликаты вручную, но наличие полного списка значительно ускоряет процесс.

...