2011-08-01 88 views
0

我正努力在TFS放置位置獲取解決方案文件夾名稱。獲取TFS 2010中的解決方案文件夾名稱

我有以下hirerchy .NET解決方案文件:

解決方案文件

- >解決方案文件夾A - >項目A

- >解決方案文件夾B - >項目B &項目C

現在我希望我的放置位置應該像上面的項目層次結構一樣自定義。

手段:在放置位置應該是:解決方案名稱 - > SolutionFolderName - >項目名 - > {建立輸出}

通過實現自定義輸出目錄在我的生成模板,即$(TeamBuildOutDir)\ $(解決方案名稱)\ $(MSBuildProjectName),我得到解決方案名稱 - >項目名稱 - >生成輸出..

但我沒有得到解決方案文件夾名稱來構造我的輸出。任何人都可以建議如何得到這個,以便我可以從我的項目文件中讀取。 在此先感謝。

+0

解決方案文件夾在文件系統中不存在。 –

+0

嗨惡魔蜂,歡迎來到stackoverflow。我注意到你的答案發布在下面,只是一些幫助讓事情變得更流暢,通過對他們的答案使用「添加評論」來回復他人的答案。您只需要爲自己的問題添加一個答案,如果您認爲自己已經解決了問題並希望分享您的解決方案。玩的開心! – Evolve

+0

任何最終解決方案與完整的源代碼示例工作呢? – Kiquenet

回答

0

您可以在對應於解決方案文件夾名稱的項目中設置屬性(例如$(SolutionFolder))。然後你可以將輸出目錄設置爲$(TeamBuildOutDir)\$(SolutionFolder)

0
public static TeamProject[] GetAllProjects(TfsTeamProjectCollection prjCollection) 
    { 
     var versionControl = prjCollection.GetService<VersionControlServer>(); 
     return versionControl.GetAllTeamProjects(true); 
    } 
    public static ProjectCollection GetAllIterations(TfsTeamProjectCollection prjCollection) 
    { 
     var wiStore = prjCollection.GetService<WorkItemStore>(); 
     return wiStore.Projects; 
    } 

    /// <summary> 
    /// function to get all system project name 
    /// </summary> 
    private void IterateFolder() 
    { 
     try 
     { var selectedProject = "EMRConversion"; 

      Project detailsOfTheSelectedProject = null; 

      var projCollections = GetAllIterations(prjCollection); 

      foreach (Project project in projCollections) 
      { 
       if (!String.IsNullOrEmpty(selectedProject)) 
       { 
        if (project.Name.ToString().Contains(selectedProject)) 
        { 
         detailsOfTheSelectedProject = project; 
         break; 
        } 
       } 
      } 

      if (detailsOfTheSelectedProject != null) 
      { 
       cmbSystemName.Items.Clear(); 

       foreach (Node area in detailsOfTheSelectedProject.AreaRootNodes) 
       { 
        if (!(area.HasChildNodes)) 
        { 
         cmbSystemName.Items.Add(area.Name); 
        } 

        foreach (Node item in area.ChildNodes) 
        { 
         cmbSystemName.Items.Add(item.Name); 
        } 
       } 


      } 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 
+1

可以添加一些文字? – Rob

相關問題