如何强制Visual Studio从VSIX代码重新运行分析器?

时间:2018-08-24 07:57:16

标签: c# visual-studio roslyn vsix

我有一个VSIX扩展,其中包含一组Roslyn分析器。 有时,用户可以更改一些会影响分析仪的设置,因此我需要强制Visual Studio在所有打开的文档中重新运行它们,或者如果启用了全局解决方案分析,则整个解决方案都必须重新运行。

如何实现?

我已经尝试对当前解决方案进行伪造的更新,但是它不会以任何方式影响分析仪:

IWpfTextView textView = ...
SnapshotPoint caretPosition = textView.Caret.Position.BufferPosition;
Document document = caretPosition.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
if (document != null)
{
    var workspace = document.Project.Solution.Workspace;
    var newSolution = workspace.CurrentSolution;
    bool result = workspace.TryApplyChanges(newSolution); // true
}

0 个答案:

没有答案