Получение выходных данных ExecTask в ItemCollection - PullRequest
1 голос
/ 28 декабря 2011

Я пишу простой скрипт MSBuild, в котором я хотел бы выполнить следующее:

  • Запустить инструмент командной строки, используя задачу Exec.
  • Получить выходные данные из инструментав некоторый набор элементов.
  • Используйте этот набор в качестве входных данных для другой задачи.

В этом контексте у нас есть несколько статических средств анализа командной строки и других инструментов анализа (подумайте оStyleCop).

Я хотел бы запустить команду git diff , получить ТОЛЬКО файлы из последнего коммита и передать их в StyleCop или любые другие инструменты анализа.

Iне удалось найти ссылку на то, как это сделать с помощью задачи 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?

1 Ответ

2 голосов
/ 28 декабря 2011

Если вы перенаправите вывод задачи Exec в файл, вы можете использовать задачу ReadLinesFromFile: http://msdn.microsoft.com/en-us/library/ms164299.aspx

...