90 votes

Comment obtenir exec sortie de la tâche avec msbuild

Je vais essayer de faire simple sortie par exec tâche 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>

Mais obtenir la sortie suivante:

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

Comment puis-je obtenir une sortie par mon script?

172voto

Avi Cherry Points 817

Bonne nouvelle tout le monde! Vous pouvez maintenant capturer la sortie de <Exec> de .NET 4.5.

Comme ceci:

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

Il vous suffit de:

  • Ajouter ConsoleToMsBuild="true" votre <Exec> balise
  • La Capture de la sortie en utilisant l' ConsoleOutput paramètre dans un <Output> balise

Enfin!!!

6voto

Samer Adra Points 194

J'ai obtenu au point où je suis tellement frustré par les limitations de MSBuild, et le truc qui est censé fonctionner, mais n'a pas (du moins pas dans tous les contextes), c'est à peu près n'importe quand j'ai besoin de faire quelque chose avec MSBuild, j'ai créer une version personnalisée de la tâche en C#.

Si aucun des autres suggestions de travail, alors vous pouvez certainement le faire de cette façon.

0voto

Syam Points 1173

Vous pouvez rediriger la sortie vers un fichier pour ainsi dire, et de le lire.

echo test output > somefile.txt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X