从 Roslyn API 获取生成操作?

Get Build Action from Roslyn API?

使用 Roslyn (Microsoft.CodeAnalysis) API,如何获取 Build ActionCopy to Output Directory File Properties?我可以打开项目文件并获取文档,但不确定如何获取文件属性。

打开项目并遍历文件非常简单。我只想知道每个构建操作是什么。

    open Microsoft.CodeAnalysis.MSBuild

    use ws = MSBuildWorkspace.Create()
    let pr = ws.OpenProjectAsync proj |> Async.RunTask
    for doc in pr.Documents do
        printfn "file %s" doc.FilePath

Roslyn 的 API 不会显示编译器不关心或不需要进行语言分析的内容。在这种情况下,您需要直接使用 MSBuild APIs

这是一种仅使用项目 ID(来自 Roslyn ProjectId.Id 的 Guid)和 Document.FilePath 检索项目类型(也称为构建操作)的方法:http://www.cazzulino.com/item-type-from-file.html