C# Roslyn解决方案刷新

C# Roslyn解决方案刷新,c#,roslyn,C#,Roslyn,我正在创建一些VSIX。我有VisualStudioWorkspace服务。现在,我可以解析语法树了,一切都很好。但是,当向解决方案中添加新文件时(例如,由于某些VisualStudio工作的结果),VisualStudioWorkspace.CurrentSolution中不存在此文档。它的工作原理如下: 首先,我得到了工作空间: currentWorkspace = componentModel.GetService<VisualStudioWorkspace>(); curr

我正在创建一些VSIX。我有VisualStudioWorkspace服务。现在,我可以解析语法树了,一切都很好。但是,当向解决方案中添加新文件时(例如,由于某些VisualStudio工作的结果),VisualStudioWorkspace.CurrentSolution中不存在此文档。它的工作原理如下:

首先,我得到了工作空间:

currentWorkspace = componentModel.GetService<VisualStudioWorkspace>();
currentWorkspace=componentModel.GetService();
现在,在
currentWorkspace.CurrentSolution
中,我能够获得语法树。现在,作为一些工作的结果,一个新的cs文件被添加到解决方案中,但是
currentWorkspace.CurrentSolution
没有显示它。我必须手动添加它吗?有没有办法刷新此CurrentSolution对象

我必须手动添加它吗

是的,roslyn的设计是所有对象都是不可变的,因此您必须返回一个新的解决方案

github上有几个讨论支持这一事实: