2010-01-26 32 views
8

Tôi đã viết một VS addin chặn lệnh xây dựng của Visual Studio và sử dụng một hệ thống xây dựng khác để thực hiện việc xây dựng. Tôi đã có xây dựng của tôi hiển thị lỗi ở định dạng đúng để bạn có thể bấm vào chúng trong VS nhưng một bước còn lại để tích hợp hoàn toàn liền mạch là để ngăn chặn các lệnh "chạy" hoặc "gỡ rối" của VS từ rên rỉ nó không nghĩ dự án được xây dựng (khi tất nhiên là nó) có ai biết làm thế nào tôi có thể lừa VS nghĩ rằng dự án được xây dựng?Sử dụng studio trực quan để xác định rằng bản dựng được cập nhật là gì?

+0

Look đây: http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out -of-date-but-nothing-has-changed –

Trả lời

5

Một thời gian ngắn, MSBuild/Visual Studio kiểm tra đầu ra của các mục tiêu được xác định trong cấu hình của dự án cụ thể là gì. Tiếp theo nó so sánh dấu thời gian của (các) tệp được chỉ định là đầu ra đích với dấu thời gian của tất cả các tệp được chỉ định làm đầu vào cho mục tiêu cụ thể đó. Nếu đầu vào được cập nhật nhiều hơn đầu ra, thì nó yêu cầu tạo lại đầu ra (biên dịch lại mã nguồn hoặc tệp đối tượng liên kết lại, v.v.)

Làm thế nào tôi có thể lừa VS nghĩ rằng dự án được xây dựng ?

Cập nhật dấu thời gian của tập tin đầu vào, cụ thể là file nguồn (.cpp, .cs) hoặc các tập tin nhị phân như .obj sử dụng như đầu vào cho mối liên kết và các tập tin khác được quan tâm của bạn.

Đôi khi tôi làm điều đó bằng tay ban hành lệnh sau đây sử dụng touch tiện ích từ GnuWin32

touch myfile.obj 
2

Visual Studio sử dụng dấu ngày/giờ của tệp nguồn. Nếu tệp nguồn được cập nhật nhiều hơn thì tệp nhị phân được biên dịch nằm trong bin\debug hoặc bin\release, Visual Studio sẽ xây dựng lại giải pháp.

Đôi khi, quá trình xây dựng lại có thể thất bại, giải pháp nhanh chóng là xóa các tệp gỡ lỗi trung gian *.pdb trong thư mục bin\debug hoặc bin\release của giải pháp. Sau đó phát hành một bản dựng trên giải pháp.

Hy vọng điều này sẽ giúp, Trân trọng, Tom.

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