2009-04-16 19 views
18

Tenemos un proceso que se ejecuta antes de nuestras versiones nocturnas. Si el proceso falla, genera un archivo de texto. Todo lo que necesito hacer es verificar si el archivo existe, y si lo hace, causar un error de MSBuild.¿Cómo causo un error en MSBuild si existe un archivo?

que actualmente han intentado el siguiente:

<CreateProperty Condition="Exists('C:\Process\Fail.txt')" 
     Value="false"> 
    <Output TaskParameter="Value" PropertyName="ProcessTestPassed"/> 
</CreateProperty> 
<Message Text="Process did not pass" Condition="Exists('C:\Process\Fail.txt')" ContinueOnError="false" /> 

<ReadLinesFromFile File="C:\Process\Fail.txt"     Condition="'$(ProcessTestPassed)'=='false'" ContinueOnError="false" > 
    <Output TaskParameter="Lines" ItemName="FileContents" /> 
</ReadLinesFromFile> 
<Message Text="FileContents: $(FileContents)" Condition="'$(ProcessTestPassed)'=='false'" ContinueOnError="false" /> 

que da un paso construido con esta salida:

Task "CreateProperty" 
Done executing task "CreateProperty". 
Task "Message" 
    QAWizardProTestPassed did not pass 
Done executing task "Message". 
Task "ReadLinesFromFile" 
Done executing task "ReadLinesFromFile". 
Task "Message" 
    FileContents: 
Done executing task "Message". 

Sé que lo anterior es algo excesivo, pero sólo necesito algo de trabajo! ¡¿Que me estoy perdiendo aqui?!

Gracias, Derek

+4

creo que he encontrado una solución aceptable: <= Condición de error" Existe ('C: \ Process \ Fail.txt') "Text =" ¡El proceso no pasó! " /> – dprice

+0

Esa es realmente una buena solución. –

Respuesta

27

Como señaló @dprice en su comentario, la mejor solución para esto sería:

<Error Condition="Exists('C:\Process\Fail.txt')" Text="Process did not pass!" /> 
+1

El problema acerca de esto es donde coloca la etiqueta 'Error'. En mi caso, recibo este error: 'Error: la etiqueta ya no se admite como elemento secundario del elemento . Coloque esta etiqueta dentro de un destino y agregue el nombre del objetivo al atributo "InicialesTarget" del elemento ' – knocte

+0

Está trabajando en un como https://msdn.microsoft.com/en-us/library/8b08t3s4 .aspx. (Msvs 2015) – crokusek

Cuestiones relacionadas