我一直在尝试使用以下代码保留包含项目和简单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);
}
}
答案 0 :(得分:2)
您正在寻找MsBuildWorkspace
,它实际上可以更新磁盘上MSBuild格式的sln
和csproj
个文件。
除了该类之外,Roslyn API与MSBuild等项目格式完全无关。