Roslyn: Как получить ссылку на Workspace из загруженного в данный момент решения?
Я пытаюсь получить ссылку на загруженную рабочую область, но безуспешно. Согласно документации (часть выделена жирным шрифтом), я смогу получить ссылку на нее.
API-интерфейсы Workspace находятся в пространстве имен Roslyn.Services, и они доступны, если включить в директиву using следующее:
использование Roslyn.Services;
Рабочая область, которую вы используете, обычно предоставляетсянепосредственно средой хоста (например, Visual Studio IDE), Однако вы можете работать с рабочим пространством вне среды хоста, создав собственный экземпляр IWorkspace.
Вы можете создать рабочее пространство, загрузив файл решения.
IWorkspace workspace = Workspace.LoadSolution (@ "HelloWorld.sln"); ISolution solution = workspace.CurrentSolution;
Я попытался следовать в модульном тесте, но рабочая область пуста.
IWorkspace workspace = Workspace.PrimaryWorkspace;
ISolution solution = workspace.CurrentSolution;
Я не хочу загружать решение, я хочу работать с уже загруженным решением. Как это сделать? Я использую Visual Studio 2012.
Редактировать:
Попытка использования switch / rootSuffx Roslyn, как предложено в ответе, и VS выдает ошибку, что это неверный ключ Изменил его на / rootSuffix Roslyn, и VS запускается, но рабочая область все еще пуста.