2010-01-19 35 views
3

我已經繼承了一些源代碼(Visual Studio解決方案和C#項目),並找到了一些項目引用缺少文件的情況。項目引用但磁盤上不存在的文件的列表名稱

有誰知道一個會遞歸解析目錄結構的工具,讀取每個.csproj項目文件並列出項目文件引用的但在磁盤上找不到的任何文件的名稱?

回答

1

這裏是一個代碼示例已經做了你需要的東西:

string path = @"Your Path"; 

     string[] projects = Directory.GetFiles(path, "*.csproj", SearchOption.AllDirectories); 
     List<string> badRefferences = new List<string>(); 
     foreach (string project in projects) 
     { 
      XmlDocument projectXml = new XmlDocument(); 
      projectXml.Load(project); 
      XmlNodeList hintPathes = projectXml.GetElementsByTagName("HintPath"); 

      foreach (XmlNode hintPath in hintPathes) 
      { 
       FileInfo projectFI = new FileInfo(project); 
       string reference = Path.GetFullPath(Path.Combine(projectFI.DirectoryName, hintPath.InnerText)); 

       if (!File.Exists(reference)) 
       { 
        badRefferences.Add(reference); 
       } 
      } 
     } 

*這僅僅是一個從無到有,但它會給你你需要

+0

我正要開始沿着這條路自己是什麼: - ) – 2010-01-19 12:29:17

相關問題