3

次のコードを使用して、プロジェクトと単純な cs ファイルを含む新しいソリューションを永続化しようとしましたが、何もディスクに保存されません。私は何か間違ったことをしていますか、それとも Roslyn はソリューション プロジェクトとファイルを生成するために使用するツールではありませんか?

class Program
{
    static void Main(string[] args)
    {
        var workspace = new AdhocWorkspace();

        var solutionInfo = SolutionInfo.Create(SolutionId.CreateNewId(),
                                               VersionStamp.Create(),
                                               @"C:\Seb\SebSol.sln");

        var projectInfo = ProjectInfo.Create(ProjectId.CreateNewId(),
                                             VersionStamp.Create(),
                                             "SebProj",
                                             "SebProj.dll",
                                             LanguageNames.CSharp,
                                             @"C:\Seb\SebSol\SebProj\SebProj.csproj");

        workspace.AddSolution(solutionInfo);
        workspace.AddProject(projectInfo);

        var sourceText = SourceText.From("public class A { }");
        workspace.CurrentSolution.AddDocument(DocumentId.CreateNewId(projectInfo.Id), "ClassA.cs", sourceText);

        workspace.TryApplyChanges(workspace.CurrentSolution);
    }
}
4

1 に答える 1

4

あなたが探しているのは、ディスク上の MSBuild 形式のファイルを実際MsBuildWorkspaceに更新できるものです。slncsproj

そのクラス以外では、Roslyn API は MSBuild などのプロジェクト形式に完全に依存しません。

于 2016-06-16T14:26:37.597 に答える