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