我正在尝试打开解决方案并想引用该项目..但是 solution.Projects 总是空的。 下面是我的代码。 我错过了什么吗?
var workspace = MSBuildWorkspace.Create(ImmutableDictionary<string, string>.Empty);
var solution = workspace.OpenSolutionAsync(solutionPath).Result;
var project = solution.Projects.FirstOrDefault(p => p.Name == projectName); //Here solution.Projects comes empty(count 0)
最佳答案
如果我没看错您的评论,那么您的代码正在 Visual Studio 中运行,并且您正在尝试获取一个工作区以匹配当前打开的任何解决方案。在这种情况下,不要使用 MSBuildWorkspace。 MSBuildWorkspace 真的不应该在 devenv.exe 中使用。按照 this question 的答案进行操作这让您可以直接访问我们已经在解决方案模型之上构建的 Roslyn 模型。
关于c# - MSBuildWorkspace.Create 似乎无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624019/