Tôi dành phần lớn thời gian của mình để phát triển các điều khiển cho cả WPF và Silverlight sử dụng cùng một codebase. Để làm điều này, tôi thêm các tập tin hiện có từ một dự án (nói Silverlight) là "các liên kết" cho một dự án khác (nói WPF). Đối với những khác biệt nhỏ, tôi sử dụng chỉ thị tiền xử lý nhưVisual Studio: "Tài liệu này được mở bởi một dự án khác"
#if SILVERLIGHT
...
#else
...
#endif
Mã trong các khối này chuyển sang màu xám tùy thuộc vào loại dự án bạn đã mở tệp. Vì vậy, nếu bạn mở tập tin của bạn từ dự án Silverlight (nơi SILVERLIGHT được xác định) phần khác là màu xám và Intellisense không hoạt động trong đó.
Để phần WPF được xử lý bởi IDE (với hỗ trợ màu và Intellisense), bạn cần mở tệp từ dự án WPF. Khi bạn cố gắng làm điều đó bạn nhận được một hộp thông báo rằng "Tài liệu này được mở bởi một dự án khác" và khi bạn nhấp vào OK, nó sẽ hiển thị tệp đó trong ngữ cảnh của dự án Silverlight (không phải những gì tôi muốn xem). Vì vậy, tôi phải đóng tập tin, điều hướng đến dự án WPF một lần nữa và mở tập tin một lần nữa. Điều này rất, rất khó chịu. Vì vậy, câu hỏi là: có một số loại thiết lập hoặc tiện ích mà có thể làm cho Visual Studio mở lại tệp từ dự án mà tôi bấm đúp vào nó thay vì hiển thị hộp thông báo ngu ngốc đó và hiển thị cho tôi tệp đó từ dự án "sai"?
Cho đến nay không có giải pháp cho vấn đề này ngoài việc đóng tệp. Ngoài ra, nó là lý do cho dll khóa "Không thể xây dựng ..." ngoại lệ trong VS2010. –
Tôi tự hỏi nếu về mặt lý thuyết có thể cho bổ trợ để xử lý điều này: được thông báo trước khi người dùng cố gắng mở tệp, xem liệu tệp đó đã được mở từ một dự án khác chưa, hãy đóng tệp đó và mở lại từ dự án hiện tại. Âm thanh khả thi nếu các API như vậy được đặt ra. –
Người đàn ông, điều đó sẽ thực sự tốt. Thật khó chịu khi phải đóng và mở tập tin mọi lúc. – andrecarlucci