使用Roslyn获取除.cs之外的其他文件

时间:2015-09-27 19:16:23

标签: c# code-analysis roslyn

我想找到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不包含任何文件。

1 个答案:

答案 0 :(得分:2)

您需要使用Project.AdditionalDocuments

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

更新

要使用上述内容,您必须确保目标项目中的文件的构建操作设置为AdditionalFiles。目前没有好方法在目标项目中使用此类型的构建操作生成文件,因此您目前仍然依赖于代码的用户手动创建文件的存根,为F4命中文件属性并将其构建操作更改为AdditionalFiles,之后您的扩展程序就可以将其提取。

AdditionalFiles