Как получить вывод exec задачи с помощью msbuild

Я пытаюсь получить простой вывод с помощью задачи exec с помощью msbuild:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="Test">
    <Exec Command="echo test output">
      <Output TaskParameter="Outputs" ItemName="Test1" />
    </Exec>
    <Exec Command="echo test output">
      <Output TaskParameter="Outputs" PropertyName="Test2" />
    </Exec>
    <Message Text="----------------------------------------"/>
    <Message Text="@(Test1)"/>
    <Message Text="----------------------------------------"/>
    <Message Text="$(Test2)"/>
    <Message Text="----------------------------------------"/>
  </Target>
</Project>

Но получите следующий вывод:

  echo test output
  test output
  echo test output
  test output
  ----------------------------------------
  ----------------------------------------
  ----------------------------------------

Как я могу получить вывод по моему сценарию?

72 голоса | спросил tbicr 20 Jpm1000000pmFri, 20 Jan 2012 12:37:26 +040012 2012, 12:37:26

3 ответа


0

Хорошие новости всем! Теперь вы можете захватывать вывод из <Exec>, начиная с .NET 4.5.

Вот так:

<Exec ... ConsoleToMSBuild="true">
  <Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" />
</Exec>

Просто:

  • Добавьте ConsoleToMsBuild="true" в свой <Exec> тег
  • Захватите результат, используя параметр ConsoleOutput в <Output> тег

Наконец-то!

Документация здесь

ответил Avi Cherry 29 Mayam13 2013, 05:41:00
0

Я дошел до того, что я так разочарован ограничениями MSBuild и вещами, которые должны работать, но не работают (по крайней мере, не в каждом контексте), что почти всегда, когда мне нужно это делать что-нибудь с MSBuild, я создаю пользовательскую задачу сборки в C #.

Если ни одно из других предложений не работает, то вы, безусловно, можете сделать это таким образом.

ответил Samer Adra 22 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 22 Sep 2012 22:49:38 +0400 2012, 22:49:38
0

Вы можете передать вывод в файл, так сказать, и прочитать его обратно.

echo test output > somefile.txt
ответил Syam 26 MarpmTue, 26 Mar 2013 19:17:47 +04002013-03-26T19:17:47+04:0007 2013, 19:17:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132