使用Roslyn(Microsoft.CodeAnalysis)API,我如何獲得Build Action
和Copy to Output Directory
File Properties
?我可以打開項目文件並獲取文檔,但不知道如何獲取文件屬性。從Roslyn API獲取構建操作?
打開項目和循環在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
這東西是通過處理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