asp.net - Roslyn msWorkspace.OpenSolutionAsync() 不打开网站项目
问题描述
我有一个名为RoslynTesting.sln的解决方案有 2 个项目(类库和一个网站)
var msWorkspace = MSBuildWorkspace.Create();
var solution = await msWorkspace.OpenSolutionAsync(@"E:\RoslynTesting\RoslynTesting.sln");
msWorkspace.OpenSolutionAsync()
只获取类库项目而不是网站项目。我可以在“[Failure] Project file not found: 'E:\RoslynTesting\WebSite1\'”msWorkspace.Diagnostics
中看到一条消息
我是否遗漏了什么或 Microsoft.CodeAnalysis.CSharp.Workspaces.dll 不支持网站项目?
查找属性声明和引用的代码:
var msWorkspace = MSBuildWorkspace.Create()
var solution = await msWorkspace.OpenSolutionAsync(@"E:\RoslynTesting\RoslynTesting.sln");
var documents = solution.Projects.SelectMany(x => x.Documents).ToList();
var classFile = documents.Where(x => x.FilePath == filePath).FirstOrDefault();
var invocation = await classFile.GetSyntaxRootAsync();
var classNode = invocation.DescendantNodes().OfType<ClassDeclarationSyntax>().Where(x => x.Identifier.Text == className).FirstOrDefault();
var propertyDeclarationNode = classNode.DescendantNodes().OfType<PropertyDeclarationSyntax>().Where(x => x.Identifier.Text == propertyName).FirstOrDefault();
var model = await classFile.GetSemanticModelAsync();
ISymbol methodSymbol = model.GetDeclaredSymbol(propertyDeclarationNode);
var propertyReferences = await SymbolFinder.FindReferencesAsync(methodSymbol, solution);
解决方案
推荐阅读
- python - 如何使箱线图更具可读性和比例数字?
- javascript - 子 componentDidMount() 中未定义道具
- javascript - 使用 javascript 编辑悬停时链接的颜色
- dotnetnuke - 使用 App.Data.Create() 时如何向实体类型的字段添加值
- flutter - 在颤振中使用http发布数组
- css - 图片旁边的文字,将文字高度限制为图片高度
- angular - primeng 10.0.3 表中的粘性标题不适用于 Angular 10.1.5
- javascript - 如何将来自 axios 请求的数据存储到状态中?
- python - 多处理问题
- python - TypeError:从数组打印时列表索引必须是整数或切片,而不是元组