gpt4 book ai didi

c# - 使用 Roslyn 获取 .cs 以外的文件

转载 作者:太空狗 更新时间:2023-10-29 20:33:23 25 4
gpt4 key购买 nike

我想用 Roslyn 查找方法的用法.我设法通过 .cs 中的代码使用来做到这一点文件。此外,我想分析解决方案中包含的 JavaScript 文件。我知道 Roslyn 无法分析 JavaScript 的语法或语义,所以我只想搜索 textural occurrencies我的方法名在所有 .js 中文件。

我像这样检索所有文件(文档):

foreach (Project pr in solution.Projects)
{
foreach (Document doc in pr.Documents)
{
// my js-file is not included
}
}

但是Documents只包含 .cs文件。有没有办法也得到.js文件还是我必须使用 project.FilePath 获取文件夹?并使用旧的 File API 获取文件, 这可能会导致问题,因为不一定文件夹中的所有文件都必须添加到项目等?

编辑:
还有 AdditionalFiles不包含任何文件。

最佳答案

您需要使用 Project.AdditionalDocuments :

foreach (Project pr in solution.Projects) {
foreach (TextDocument doc in pr.AdditionalDocuments) {
// doc is a non-csharp TextDocument object.
}
}

更新

要使用上述内容,您必须确保目标项目中的文件的构建操作设置为 AdditionalFiles。目前没有好的方法可以使用这种类型的构建操作在目标项目中生成文件,因此您目前只能依靠代码的用户手动创建文件的 stub ,点击 F4 对于文件属性并将其构建操作更改为 AdditionalFiles,之后您的扩展程序将能够获取它。

AdditionalFiles

关于c# - 使用 Roslyn 获取 .cs 以外的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32811850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com