2009-04-16 18 views
18

Chúng tôi có một quy trình chạy trước các bản dựng hàng đêm của chúng tôi. Nếu quá trình không thành công, nó sẽ tạo ra một tệp văn bản. Tất cả những gì tôi cần làm là kiểm tra xem tập tin có tồn tại không, và nếu có, gây ra một MSBuild không thành công.Làm cách nào để gây ra lỗi trong MSBuild nếu tệp tồn tại?

Tôi hiện đã thử như sau:

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

Mà cho một đi qua xây dựng với sản lượng này:

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

Tôi biết ở trên có lẽ là quá mức cần thiết, nhưng tôi chỉ cần một cái gì đó làm việc! Tôi đang thiếu gì ở đây ?!

Cảm ơn, Derek

+4

Tôi nghĩ rằng tôi đã tìm thấy một giải pháp có thể chấp nhận: dprice

+0

Đó thực sự là một giải pháp tốt. –

Trả lời

27

Theo ghi nhận của @dprice trong bình luận của ông, giải pháp tốt nhất cho việc này sẽ là:

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

Vấn đề ở đây là nơi bạn đặt thẻ 'Lỗi'. Trong trường hợp của tôi, tôi nhận được lỗi này: 'Lỗi: Thẻ không còn được hỗ trợ dưới dạng con của phần tử . Đặt thẻ này trong một mục tiêu và thêm tên của mục tiêu vào thuộc tính "InitialTargets" của phần tử ' – knocte

+0

Nó đang hoạt động theo một số như https://msdn.microsoft.com/en-us/library/8b08t3s4 .aspx. (Msvs 2015) – crokusek

Các vấn đề liên quan