Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Roslyn CTP-如何将更改写入文件系统_C#_C# 4.0_Roslyn - Fatal编程技术网

C# Roslyn CTP-如何将更改写入文件系统

C# Roslyn CTP-如何将更改写入文件系统,c#,c#-4.0,roslyn,C#,C# 4.0,Roslyn,我创建了一个名为Solution.sln的空Visual Studio解决方案,并将其加载到第一行的工作区中。然后我向解决方案中添加一个项目,并将工作区更新为最新的解决方案,该解决方案现在应该包含一个项目。如何写出我添加到空解决方案中的新内容的文件 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Roslyn.Compilers; using Roslyn.Co

我创建了一个名为Solution.sln的空Visual Studio解决方案,并将其加载到第一行的工作区中。然后我向解决方案中添加一个项目,并将工作区更新为最新的解决方案,该解决方案现在应该包含一个项目。如何写出我添加到空解决方案中的新内容的文件

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?
            }
        }
    }
}
提前感谢,


Bob

调用
ApplyChanges
的行为应该将更改写入磁盘。然而,请注意,在CTP1中,只有一小部分可以应用于解决方案的更改被实际实现。

我添加的只是一个应该实现的解决方案的单个项目。请随意将我的示例复制并粘贴到控制台窗口中,让我知道它是否在您的计算机上工作。在CTP1中,唯一受支持的是添加、更新和删除文档。不支持添加或删除项目。看起来他们今天刚刚发布了新的CTP。我将尝试一下,并通知大家是否已在CTP2中删除此限制。我将省去您的麻烦,并告诉您,CTP2不支持通过Workspace.LoadSolution加载的工作区添加项目。IWorkspace上现在有一个API
IsSupported
,它记录了实际支持的修改操作。