【问题标题】:Get Build Action from Roslyn API?从 Roslyn API 获取构建操作?
【发布时间】:2016-02-11 00:02:09
【问题描述】:

使用 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

【问题讨论】:

  • 这是由 msbuild 处理的,而不是 csc。编译器本身只知道源文件、引用和资源。如果您在 VS 中,您可能会使用 VS SDK 来获取该信息,例如 here。另外,请从旧的 SO 线程中查看 this answer

标签: roslyn roslyn-code-analysis


【解决方案1】:

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

【讨论】:

  • 感谢您的确认。我以为它可能会暴露。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多