我在 Visual Studio 2008 中有一个大型项目。它有几年尝试的积累,并且经常从项目中排除(而不是删除)文件。我需要一种方法来永久删除任何排除的文件。有数千个文件和数百个文件夹。在解决方案资源管理器中手动执行此操作会花费太多时间。
我可以构建一个项目文件解析器并与文件系统进行比较,但我希望有一个快捷方式。
Thanks
排除的文件是否与其他文件一起受到源代码管理?如果没有,只需确保所有内容都已签入,获取到新的临时位置,将旧目录移开作为备份,然后将临时文件夹移动到旧目录所在的位置。
如果实验被签入源代码管理,那就有点困难了 - 您可能需要使用项目文件解析器。但这可能并不难。
编辑:好的,如果全部都在 SVN 中,我建议你写一个very粗略的项目解析器。给它一个 XPath 表达式(或类似的东西)的列表来选择“可能的路径”。选择项目文件中的所有内容,然后将所选的每个文件复制到新位置(包括子目录等)。还要复制项目文件和解决方案文件。然后尝试构建 - 如果失败,则说明您错过了一些东西:重复。
继续下去,直到构建完成,然后进行测试。只要一切都好,你就可以把其他一切都吹掉:)
编辑:这是start我的意思是:
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,但命名空间的问题让它变得很痛苦。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)