如何使用roslyn将现有项目添加到c#解决方案?

时间:2016-03-21 15:46:29

标签: c# roslyn

我想将现有项目添加到我的c#solution.I使用TryApplyChanges并返回true但不保存对真实解决方案的更改。我使用了Microsoft.CodeAnalysis。*版本1.1.1。

 public void AddProject (string solutionName)
 {
    MSBuildWorkspace ws=MSBuildWorkspace.Create ();
    ws.OpenSolutionAsync (solutionName);
    ws.OpenProjectAsync ("ProjectName");
    if (ws.TryApplyChanges  (ws.CurrentSolution )
    {// break point is here 
    }
 } 

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题:

  1. MSBuildWorkspace不支持(当前)支持从工作区添加/删除项目并将其保存回解决方案文件。 We're open source如果你想改善这一点。
  2. 调用OpenProjectAsync并不是真的希望修改解决方案,因为您希望这样做......它只是用信息填充工作区。
  3. 你不等待异步电话,所以即使这样,他们也许还没有完成他们的工作。
  4. 第一个对你来说显然是最关键的,但其他人也应该注意。