[英]MSBuildWorkspace : solution contains no documents and no projects on Visual Studio 2019
我想使用roslyn創建一個分析器,但首先我需要從目標解決方案中獲取所有文檔(.cs文件)。
我使用了Josh Varty教程中的以下代碼
string solutionPath = @"C:\Users\hamza\Desktop\TestSolution\TestSolution.sln";
var msWorkspace = MSBuildWorkspace.Create();
var solution = msWorkspace.OpenSolutionAsync(solutionPath).Result;
foreach (var project in solution.Projects)
{
Console.WriteLine(project);
foreach (var document in project.Documents)
{
Console.WriteLine(project.Name + "\t\t\t" + document.Name);
}
}
但結果是null,我沒有得到任何文件或項目。
MSBuildWorkspace版本是3.0.0我也試過2.10.0但結果是一樣的。
有人對此有所了解嗎? 或者如何解決這個問題?
經過更多研究后,我在Github上發現了這個有用的問題: https : //github.com/dotnet/roslyn/issues/24767
這段代碼工作正常
var projectPath = @"C:\Users\hamza\Desktop\TestSolution\TestSolution.sln";
using (var workspace = MSBuildWorkspace.Create())
{
var solution = workspace.OpenSolutionAsync(projectPath).Result;
foreach (var project in solution.Projects)
{
foreach (var document in project.Documents)
{
Console.WriteLine(project.Name + "\t\t\t" + document.Name);
}
}
}
最后,為了使事情正常,我添加了這個包:
Install-Package Buildalyzer.Workspaces -Version 2.2.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.