Tôi có một tập tin thực thi đang sử dụng lệnh exit
để trả lại mã thoát.Tôn vinh mã thoát khỏi các tập tin batch được gọi bởi msbuild
Tệp lô này có thể được gọi tương tác từ dòng lệnh hoặc trong các trường hợp khác, có thể được chạy như một phần của dự án MSBuild, sử dụng tác vụ Exec
.
- Nếu tôi sử dụng
exit %errorlevel%
trong tập tin thực thi của tôi làm việc này tốt và MSBuild thấy mã lỗi, tuy nhiên một người sử dụng tương tác người đang chạy tập tin thực thi từ một cửa sổ lệnh sẽ nhận được một lối ra thô lỗ của cmd.exe trong trường hợp này. - Nếu tôi sử dụng
exit /b %errorlevel%
trường hợp tương tác không bị thoát thô lỗ, nhưng điều này cũng có nghĩa làcmd
được khởi chạy bởi tác vụExec
của tôi cũng không thoát và do đó MSBuild không thấy giá trị trả lại.
Là một giải pháp cho cả hai vấn đề, tôi đang cố gắng sử dụng exit /b
nhưng khởi động tập tin thực thi từ xây dựng kịch bản của tôi như thế này:
<Exec Command="Batch.cmd params & exit %errorlevel%" />
Ý tưởng được rằng tôi dứt khoát lấy 'phi terminal 'trở về từ số exit /b
và gọi theo cách thủ công exit
để chuyển giá trị này ra ngoài cmd.exe
trong đó Tác vụ Xây dựng Exec
có thể xem được.
Điều này có vẻ như giải pháp hoàn hảo, tuy nhiên nó không hoạt động. Exec
vẫn không nhận được giá trị lỗi chính xác.