2008-10-07 32 views
5

Khi bạn dỡ bỏ một dự án trong Visual Studio, bất kỳ dự án tham chiếu nào đều nhận được hình tam giác cảnh báo khi tham chiếu đến dự án chưa tải. Tôi đã viết cho mình một macro để thực hiện các công cụ thông minh (phát hiện thêm/xóa dự án và chuyển đổi bất kỳ tham chiếu nào từ phụ thuộc vào tệp/dự án), nhưng tôi không thể tin rằng tôi không thiếu cái gì đơn giản hơn nhiều. Làm thế nào có thể unload chức năng được sử dụng bất kỳ nếu tôi phải đi xung quanh bằng tay thay đổi tài liệu tham khảo (và nó phá vỡ các 'giải pháp cá nhân/mô hình phát triển các dự án chia sẻ đội ngũ').Bạn làm gì về tài liệu tham khảo khi dỡ một dự án trong Visual Studio?

(Câu hỏi này có liên quan đến câu trả lời cho this question về định cấu trúc giải pháp lớn trong Visual Studio -. Một số câu trả lời nêu có giải pháp với nhiều dự án, nhưng 'dỡ' các dự án không sử dụng để cải thiện hiệu suất)

+0

Macro đó thật tuyệt! Tôi đã muốn tìm ra một macro hoặc addin để làm một cái gì đó như thế, nhưng đã không nhận được xung quanh để dành thời gian để làm điều đó. Đã không tìm thấy bất kỳ thứ gì trên internet. Bất kỳ cơ hội (nếu nó có thể tái sử dụng đủ), bạn có thể gửi nó ở đâu đó? –

+0

@MafuJosh, cảm ơn sự quan tâm của bạn (và phản hồi). Đây là (không có bảo đảm và yadayada thông thường): https://gist.github.com/1824214 – Benjol

+0

cảm ơn bạn, tôi sẽ xem xét điều này khi tôi có cơ hội (khi tôi không làm việc đêm và cuối tuần nữa ...) và cho bạn biết làm thế nào nó đi. –

Trả lời

1

Đối với dự án của tôi, Tôi tạo một thư mục assemblies mà các dự án tự động sao chép vào từ một vị trí đã được thiết lập để các dự án khác sao chép các bản dựng.

Post-xây dựng cho dự án lắp ráp tham chiếu của:

if not exist "C:\builds\Project1" md "C:\builds\Project1\" 
copy "$(TargetDir)$(TargetName).*" "C:\builds\Project1\" 

Pre-xây dựng cho các dự án tham khảo:

nếu tồn tại "c: \ xây dựng \ Project1 \ "sao chép" c: \ builds \ Project1 *. * "" $ (ProjectDir) hội đồng "

Tệp dự án trỏ tới thư mục con assemblies để tham chiếu, vì vậy ngay cả khi các dự án nguồn được giải nén khỏi giải pháp, các hội đồng được xây dựng cuối cùng sẽ được sử dụng mà không gặp vấn đề về hiệu suất của toàn bộ dự án trong bộ nhớ trong khi phát triển.

+0

Đẹp, nhưng điều đó có giải quyết được vấn đề tham chiếu khi dỡ một dự án không? VS dường như không đủ thông minh để phát hiện rằng dll tồn tại trong đường dẫn tham chiếu. Và nếu bạn chỉ có tài liệu tham khảo tập tin, không có lợi thế của việc có các dự án trong cùng một thư mục. – Benjol

+0

Mặc dù bạn không có tài liệu tham khảo dự án trực tiếp (điều này không hữu ích nếu bạn định tải chúng), có những lợi thế khác để có chúng trong cùng một giải pháp, mặc dù bạn chỉ cần chúng trong cùng một * thư mục * nếu nhà cung cấp SCC của bạn mong đợi nó. –

1

Ưu điểm của việc có dự án trong cùng một giải pháp nếu bạn sử dụng tham chiếu tệp là gì?

Nếu app.exe của bạn sử dụng utils.dll và bạn thay đổi mã cho utils.dll, sau đó nếu nó nằm trong cùng một giải pháp VS sẽ nhận thấy sự phụ thuộc và biên dịch lại cả hai. Nếu nó không có trong giải pháp bạn sẽ phải nhảy ra, biên dịch lại utils.dll một cách riêng biệt, sau đó nhảy trở lại và biên dịch lại app.exe. Điều này trở nên quan trọng hoặc ít quan trọng hơn tùy thuộc vào số lượng exe dll khác của bạn tham chiếu và tần suất chúng thay đổi (trong môi trường nhóm chia sẻ sự thay đổi của dll thường theo kinh nghiệm của tôi).
Ngoài ra còn có tác dụng phụ là nếu bạn có 100 dự án trong VS, sẽ mất một thời gian dài để xử lý tất cả chúng chỉ để tìm ra xem chúng có cần biên dịch lại hay không.

+0

Xin chào, tôi đã chuyển câu hỏi 'ẩn' của mình ở đây, nếu bạn cũng muốn chuyển câu trả lời của mình: http://stackoverflow.com/questions/1490728/what-are-the-advantages-of-having-projects-in- the-same-solution-if-you-use-file-r – Benjol

1

Tải xuống dự án có nghĩa là hành động tạm thời để bạn có thể chỉnh sửa tệp dự án thực tế dưới dạng XML (văn bản). Nếu bạn muốn xóa hoàn toàn một dự án khỏi giải pháp của mình, bạn nên sử dụng tùy chọn trình đơn "Xóa", tùy chọn này sẽ xử lý việc xóa bất kỳ tham chiếu nào đến dự án đó.

Một lợi thế để sử dụng các tham chiếu dự án là nó cho phép bạn dễ dàng gỡ lỗi thông qua mã. Nó cũng tự động đảm bảo rằng bạn đang sử dụng đúng cấu hình xây dựng (ví dụ, nếu bạn đang xây dựng trong "Debug" chế độ nó sẽ sử dụng phiên bản gỡ lỗi của hội đồng).Điều đó đang được nói, bạn mất một số xác định về phiên bản/xây dựng của dự án phụ thuộc bạn sẽ nhận - tài liệu tham khảo dự án có nghĩa là bạn luôn luôn sử dụng mới nhất.

Có, để Visual Studio xác định phụ thuộc xây dựng, nó phải có khả năng xem và xây dựng tất cả các dự án có nghĩa là tham chiếu dự án.

1

Tôi vừa có một thời điểm eureka đọc qua tài liệu MSDN về cấu trúc các giải pháp và dự án.

Điều tôi chưa nhận thấy là trong giải pháp đa dự án, menu ngữ cảnh trong Solution Explorer đề xuất cửa sổ bật lên Dự án phụ thuộc. Ở đây bạn có thể định nghĩa các phụ thuộc của dự án theo cách thủ công, nếu bạn chưa định nghĩa chúng bằng các tham chiếu dự án giữa các dự án.

Xem here (liên kết MSDN, do đó sẽ tự hủy sau một vài tuần)

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