Я пытаюсь создать самостоятельный проект WebAPI 2.0, который позволяет вам открывать/исследовать/строить .sln-решения через API.
Здесь код внутри одного из моих контроллеров, который должен возвращать список проектов с указанием пути к .sln:
public async Task<IHttpActionResult> GetProjects(string slnPath = "")
{
var workspace = MSBuildWorkspace.Create();
var solution = await workspace.OpenSolutionAsync(slnPath);
var projects = solution.Projects;
}
Я ожидаю, что проекты будут содержать проекты в решении, но, согласно отладчику, solution.Projects
и solution.ProjectIds
всегда кажутся пустыми.
Я пробовал это с несколькими .sln
файлами, все из которых я могу открыть в Visual Studio и видеть, что у них есть проекты.
Я видел этот вопрос, но мой проект не добавлен в Visual Studio, это библиотека классов, вызванная из приложения командной строки.