6

我在一个拥有多个分支的大型团队中工作,并定期进行合并。

经常发生的一件事是 Web 项目文件最终会出现静态内容(.js、favicon.ico 等)的重复条目。

我有两种删除重复项的方法:

  1. 删除项目资源管理器中的项目(删除所有条目以及磁盘文件),然后再次从源代码管理中获取文件并将其添加回来。
  2. 卸载项目文件,查找重复项,删除它们(希望它们彼此靠近),然后重新加载项目。

两者都很乏味,我对它们不满意 - 你有更好/更快/更快的方法吗?

4

2 回答 2

5

最简单的方法是简单地右键单击副本并选择“从项目中排除”选项。刷新项目后,重复项将消失。

于 2009-08-07T07:08:41.203 回答
2

对于桌面应用程序,最烦人的事情是 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 年)。您仍然必须手动删除重复项,但拥有完整列表会大大加快速度。

于 2018-06-19T12:44:34.910 回答