Tôi đã viết một kịch bản PowerShell để xây dựng một vài giải pháp .net sau cái khác. Nó chỉ đơn giản là làm cho một số cuộc gọi đến tfget (để có được mới nhất) theo sau là các cuộc gọi đến devenv.exe (để xây dựng các tập tin .sln).Tại sao PowerShell không thể xây dựng các giải pháp .net của tôi? ("tập tin đang được sử dụng bởi một quá trình khác")
Dưới đây là các mã:
tfget -item $SolutionPath -overwrite -recurse -ev +errors
...
$out = invoke-expression "devenv.com /rebuild debug $SolutionPath"
Hầu như mỗi khi tôi chạy kịch bản một trong những giải pháp thất bại trong việc xây dựng và tôi nhận được một lỗi từ csc.exe nói (?):
lỗi CS1606: Ký hợp đồng không thành công; đầu ra có thể không được ký - Quy trình không thể truy cập tệp vì quá trình này đang được sử dụng bởi một quy trình khác.
Điều này xảy ra mặc dù tôi đã đóng tất cả các trường hợp của Visual Studio giữ các giải pháp này và tôi không có ứng dụng nào chạy trên máy của tôi.
Một tệp hàng loạt tương tự mà tôi đã viết hoạt động tốt. Nó chỉ PowerShell phàn nàn về tập tin đang được sử dụng bởi một quá trình khác.
Làm cách nào để tránh điều này xảy ra? Có bất kỳ ví dụ nào tốt hơn ngoài việc xây dựng các giải pháp .net thông qua PowerShell không?
Bạn có thể dán mã của mình không? – stej
Xin chào, tôi vừa cập nhật câu hỏi để bao gồm một mẫu mã. – urig
Có lý do cụ thể nào khiến bạn muốn sử dụng devenv.exe để xây dựng thay vì MSBuild không? – Filburt