2012-06-04 54 views
2

我創建了一個名爲Solution.sln的空Visual Studio解決方案,我將其加載到第一行的工作區中。然後我將一個項目添加到解決方案中,並將工作空間更新爲現在應包含項目的最新解決方案。如何寫出我添加到空解決方案中的新內容的文件?Roslyn CTP - 如何將更改寫入文件系統

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Roslyn.Compilers; 
using Roslyn.Compilers.CSharp; 
using Roslyn.Services; 

namespace RoslynMainApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      IWorkspace workspace = Workspace.LoadSolution(@"C:\RoslynSolutions\Solution.sln"); 
      ProjectId projectId; 

      ISolution solution = Solution.Create(SolutionId.CreateNewId("Solution")); 
      solution.AddCSharpProject("Project1.dll", "Project1", out projectId); 
      var success = workspace.ApplyChanges(workspace.CurrentSolution, solution); 
      if(success) 
      { 
       //How do I write out all the stuff I just added to Solution.sln to the directory RoslynSolutions? 
      } 
     } 
    } 
} 

由於提前,

鮑勃

回答

3

調用ApplyChanges應該更改寫入到磁盤的行爲。但是請注意,在CTP1中,實際上只能執行一小部分可應用於解決方案的更改。

+0

我添加的所有內容都是一個應該實施的解決方案。隨意將我的示例複製並粘貼到控制檯窗口中,並讓我知道它是否適用於您的計算機。 – Beaker

+0

在CTP1中,唯一支持的功能是添加,更新和刪除文檔。不支持添加或刪除項目。 –

+0

看起來他們今天剛剛發佈了一個新的CTP。我會試試看,並告知大家這個限制是否已經在CTP2中被刪除。 – Beaker