如何从visual studio web项目中删除重复的条目?

时间:2009-08-06 20:14:16

标签: visual-studio web-applications projects-and-solutions duplicates

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

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

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

  1. 删除项目资源管理器中的项目(删除所有条目以及磁盘文件),然后从源代码管理中再次获取该文件并将其重新添加。
  2. 卸载项目文件,查找重复项,删除它们(希望它们彼此靠近),然后重新加载项目。
  3. 两者都很乏味,我对它们不满意 - 你有更好/更快/更快的方法吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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