Comment obtenir exec sortie de la tâche avec msbuild
Que j'essaie de faire simple sortie par exec tâche avec 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 prochaine sortie:
echo test output
test output
echo test output
test output
----------------------------------------
----------------------------------------
----------------------------------------
Comment puis-je obtenir une sortie par mon script?
- double possible de la Collecte des sorties à partir d'un MSBuild exec tâche
- semble être vrai, merci je suis miss docuemntation informations
- Bien la documentation est généralement pas sur ce qui n'est pas possible, mais qu'est-ce que. Ayant cela dit, votre question semble être fréquentes, donc vous devriez peut-être ajouter des "contenu de la communauté", et donc d'améliorer la documentation MSDN.
- outre le fichier de hack dans le Rassemblement... related post, il ne semble pas comme exec peut le faire très bien avec exec. En fait, certaines personnes demandaient une version améliorée dans msbuildextensions. Qu'est-ce que vous essayez de faire avec exec? Il y a peut être un moyen plus facile d'accomplir ce que vous tentez. Par exemple, vous pouvez obtenir les valeurs datetime de la MSBuild.ExtensionPack.Cadre.DateAndTime tâche. Si vous avez vraiment besoin de cette fonctionnalité, je pense que la construction d'une coutume tâche msbuild serait la meilleure route à suivre. Je vais essayer de le fouetter jusqu'quand j'ai le temps et le poster ici.
- stackoverflow.com/questions/11096148/... Ce lien utilise <l'Importance du Message="haut" Text="$(Test2)"/>
Vous devez vous connecter pour publier un commentaire.
Bonne nouvelle tout le monde! Vous pouvez maintenant capturer la sortie de
<Exec>
comme de .NET 4.5.Comme ceci:
Simplement:
ConsoleToMsBuild="true"
à votre<Exec>
tagConsoleOutput
paramètre dans un<Output>
tagEnfin!
La Documentation ici
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.
Vous pouvez rediriger la sortie vers un fichier pour ainsi dire, et de le lire.
Si vous voulez capturer la sortie d'un tableau de structure et non pas à une simple chaîne de caractères où les lignes de sortie sont séparés par un point-virgule, utilisez ItemName au lieu de PropertyName: