2009-04-16 38 views
18

Gecelik yapımızdan önce çalışan bir işlemimiz var. İşlem başarısız olursa, bir metin dosyası oluşturur. Tek yapmam gereken, dosyanın var olup olmadığını kontrol etmektir ve eğer varsa, başarısız bir MSBuild'e neden olur.Bir dosya varsa MSBuild'de nasıl bir hataya neden olur?

Şu anda aşağıdaki denedim:

geçer bu çıkışı ile inşa verir
<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" /> 

:

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". 

yukarıda muhtemelen overkill olduğunu biliyorum, ama sadece çalışma şeyler verin! Burada neyi özlüyorum?

sayesinde derek

onun yorumunda @dprice tarafından belirtildiği gibi
+4

Ben kabul edilebilir bir çözüm buldum Var ('C: \ Process \ Fail.txt') "Metin =" Süreç geçmedi! " /> – dprice

+0

Bu aslında iyi bir çözüm. –

cevap

27

, bunun için en iyi çözüm olacaktır: <Error Condition="Exists('C:\Process\Fail.txt')" Text="Process did not pass!" />

+1

Buradaki sorun, 'Error' etiketini yerleştirdiğiniz yerdir. Benim durumumda şu hatayı alıyorum: 'Hata: etiketi artık öğesinin alt öğesi olarak desteklenmiyor. Bu etiketi bir hedefe yerleştirin ve hedefin adınıöğesinin "InitialTargets" özniteliğine ekleyin. – knocte

+0

https://msdn.microsoft.com/en-us/library/8b08t3s4 gibi bir altında çalışıyor .aspx. (Msvs 2015) – crokusek

İlgili konular