2015-11-10 23 views
1

使用Roslyn(Microsoft.CodeAnalysis)API,我如何獲得Build ActionCopy to Output DirectoryFile Properties?我可以打開項目文件並獲取文檔,但不知道如何獲取文件屬性。從Roslyn API獲取構建操作?

enter image description here

打開項目和循環在filesis很容易。我只想知道每個構建操作是什麼。

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 
+2

這東西是通過處理msbuild,而不是csc。編譯器本身只知道源文件,引用和資源。如果你在VS內部,你可以使用VS SDK獲取這些信息,例如[here](https://social.msdn.microsoft.com/Forums/vstudio/en-US/bd74f1bc-2c60-4f9c-b29f -e50bf16aadfc /使用-DTE到設置一個定製建造行動?論壇= VSX)。另外,從舊的SO線程看看[這個答案](http://stackoverflow.com/questions/12367945/roslyn-add-a-document-to-a-project/12370901#12370901)。 – Tamas

回答

2

Roslyn的API沒有提供編譯器不關心或需要語言分析的東西。在這種情況下,您需要直接使用MSBuild APIs

+0

感謝您的確認。我認爲它可能會暴露。 –