c# - 如何仅获取从 Roslyn 提取的 C# 解析器(语法树)
问题描述
我正在尝试将 Roslyn 源代码引入 Unity 3D 视频游戏,该游戏将在其中进行实时 C# 编辑。我想要语法树来帮助调试、格式化和分析,并且最初计划为此目的推出我自己的解析器。但是,如果我可以提取 Roslyn 的语法树并在 Unity 中执行,那会让事情变得容易得多。
但是,我可能已经花费了 12 个小时来尝试减少 Roslyn 项目(请参阅此处的 escapades:https ://codavore.blogspot.com/2019/11/c-parser-part-2.html )而且我没有没有成功地减少项目。即删除 VB 部分会影响 C#/VB 的双重测试用例,而删除一个多余的东西会影响其他十几个。
有人对提取 C# 语法树的源代码有什么建议吗?
解决方案
我最初希望引入源代码,但根据@Jonathon Marolf 的评论,我试图通过 nuget 引入它。但是,无论何时我更改文件,Unity 都会覆盖 nuget 所做的大部分工作,因此这不起作用。为了解决这个问题,我找到并安装了NuGet for Unity。然后运行 nuget“Install-Package Microsoft.CodeAnalysis.CSharp -Version 3.3.1”。
当然这破坏了项目,因为它是为 VS 项目设计的,而不是 Unity。我不得不删除重复的 DLL,以及所有的语言支持文件。它仍然有几个在尝试运行时卸载的分析 dll 的错误,但它能够解析出我传递给它的部分源代码。
推荐阅读
- wordpress - Woocommerce:如何在结帐页面上显示唯一一种付款方式的输入收音机?
- java - 设置 JPackage 安装程序,它不会覆盖较新版本中的配置文件
- javascript - 在前端下载ANSI zip文件,由C#后端生成
- javascript - slug 后生成新页面
- c - 从文本文件中读取字符并存储到结构数组中
- vba - 访问 VBA 查询提取并命名
- list - 如何在飞镖中深度复制嵌套列表?
- angular - Angular Fullstory集成如何实现用户uuid
- excel - 使用office.js在线复制粘贴(循环)到多个Excel范围时出错
- python - 当我在 Django 中提交表单集时,为什么它会在表单集中返回额外的 5 个字段?