我寫一個簡單的MSBuild腳本,我想執行以下操作:獲取ExecTask輸出到ItemCollection
- 運行使用Exec任務的命令行工具。
- 將工具的輸出獲取到某個項目集合中。
- 將此集合用作其他任務的輸入。
這個的上下文是,我們有幾個命令行靜態分析和其他分析工具(想起StyleCop)。
我想運行一個git diff命令,並獲取最新提交的文件並將它們送入StyleCop或任何其他分析工具。
我找不到任何有關如何使用Exec任務執行此操作的參考。
編輯:我試圖使用ReadLinesFromFile任務:
<Exec Command="git diff --name-only HEAD~1 HEAD > C:\output.txt" WorkingDirectory="D:\Code" /> <ReadLinesFromFile File="C:\output.txt"> <Output TaskParameter="Lines" ItemName="ItemsFromFile" /> </ReadLinesFromFile> <StyleCopTask ProjectFullPath="$(MSBuildProjectFile)" SourceFiles="@(ItemsFromFile)" ForceFullAnalysis="true" TreatErrorsAsWarnings="true" OutputFile="StyleCopReport.xml" CacheResults="true" />
但這似乎並沒有工作。
我正在使用ItemsFromFile集合嗎?
的'ReadLinesFromFile'和'StyleCopTask'看起來不錯。 'output.txt'看起來像什麼?如果它包含每行一個完整的源代碼文件路徑,則應該起作用。 – 2012-02-04 13:07:55