在Visual Studio中,从项目中删除所有排除文件的快捷方法是什么?

时间:2009-04-01 20:01:38

标签: visual-studio-2008 file

我在visual studio 2008中有一个大型项目。它累积了几年的尝试,并经常从项目中排除(不删除)文件。我需要一种永久删除任何排除文件的方法。有数千个文件和数百个文件夹。在解决方案资源管理器中手动执行此操作会花费太多时间。

我可以构建一个项目文件解析器并与文件系统进行比较,但我希望有一个快捷方式。

由于

2 个答案:

答案 0 :(得分:3)

源代码控制下的排除文件是否与其他文件一起?如果没有,只需确保一切都已签入,获取到一个新的临时位置,将旧目录移开作为备份,并将临时文件夹移动到旧文件夹的位置。

如果将实验检查到源代码控制中,则稍微困难一点 - 您可能需要使用项目文件解析器。但这可能不是很难。

编辑:好的,如果它全部在SVN中,我建议您编写一个非常原始项目解析器。给它一个XPath表达式列表(或类似的东西)来选择“可能的路径”。选择项目文件中的所有内容,并将选定的每个文件复制到一个新位置(包括子目录等)。还复制项目文件和解决方案文件。然后尝试构建 - 如果失败,你就错过了一些东西:重复。

继续前进,然后进行测试。只要一切都好,你就可以把一切都吹走了。)

编辑:这是我所说的那种开始

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;

public class ProjectParser
{
    static void Main(string[] args)
    {
        XDocument doc = XDocument.Load(args[0]);

        XNamespace ns = "http://schemas.microsoft.com/developer/msbuild/2003";
        DumpMatches(doc.Descendants(ns + "Compile")
                       .Select(x => x.Attribute("Include").Value));
        DumpMatches(doc.Descendants(ns + "AssemblyOriginatorKeyFile")
                       .Select(x => x.Value));
    }

    static void DumpMatches(IEnumerable<string> values)
    {
        foreach (string x in values)
        {
            Console.WriteLine(x);
        }
    }
}

(我最初尝试使用XPath,但命名空间的东西让它很痛苦。)

答案 1 :(得分:2)

打开命令提示符并尝试DEL/S *.exclude。我认为你在编写Visual Studio的加载项方面做得更好。