Với các dự án nhỏ, tôi có thể chuyển sang chế độ xem thiết kế gần như ngay lập tức (< 1 giây).Điều gì có thể khiến màn hình thiết kế quá chậm?
Tôi có một dự án lớn mất khoảng 60 giây để mở điều khiển hoặc biểu mẫu ở chế độ xem thiết kế - chỉ lần đầu tiên. Sau sự chậm trễ 60 giây này, tôi có thể mở bất kỳ sự kiểm soát nào trong dự án trong khung nhìn thiết kế gần như ngay lập tức - cho đến khi tôi biên dịch lại dự án.
Nếu exe được xây dựng bởi dự án này được tham chiếu trong dự án (nhỏ) khác, dự án nhỏ ngay lập tức trở nên chậm chạp như dự án lớn. Tương tự, nếu tôi thêm tất cả các tệp từ dự án lớn vào dự án nhỏ riêng lẻ, dự án nhỏ sẽ trở nên chậm chạp.
Dự án lớn tham chiếu một dự án Managed C++ lớn, nhưng nếu tôi thêm cùng một tham chiếu (và gọi hàm từ tham chiếu để đảm bảo nó được tải) cho dự án nhỏ, dự án nhỏ vẫn còn nhanh.
Dự án lớn của tôi sử dụng SandDock. Nếu dự án nhỏ của tôi sử dụng SandDock, nó vẫn nhanh.
Dự án lớn của tôi có khoảng 60 điều khiển người dùng xuất hiện trong hộp công cụ. Nếu tôi thêm 60 điều khiển người dùng vào dự án nhỏ, dự án nhỏ vẫn còn nhanh.
Nếu tôi điều khiển người dùng ẩn khỏi hộp công cụ với [System.ComponentModel.ToolboxItem (false)], dự án lớn vẫn còn chậm.
Sự cố xảy ra ở cả hai phiên bản vs2005 và vs2008.
Điều gì có thể làm cho dự án lớn quá chậm để mở chế độ xem thiết kế lần đầu tiên? Một số tài liệu tham khảo khác? Số lượng lớn các điều khiển? Số lượng lớn các lớp học? Một số nguyên nhân khác?
Một điều tôi đã nhận thấy (mặc dù có thể là cá trích đỏ) là thư mục ProjectAssemblies (C: \ Documents and Settings \ tim.gradwell \ Local Settings \ Application Data \ Microsoft \ VisualStudio \ 9.0 \ ProjectAssemblies) là rất lớn (> 1GB) và hầu hết các thư mục ở đây có một bản sao của dll Managed C++ của tôi! Các thư mục này xuất hiện để được tái tạo mỗi khi khung nhìn thiết kế được mở lại (sau khi biên dịch lại). Điều này có liên quan gì đến sự chậm lại không?
Tiếp tục Thông tin:
Một toolstrip trong việc kiểm soát người dùng hoặc hình thức làm cho các hình thức mất 60 giây để tải. Loại bỏ các toolstrip (nhưng vẫn có một số điều khiển khác nhau khác trên form) làm cho switch chuyển sang thiết kế xem ngay lập tức.
Đó không phải là toàn bộ câu chuyện ... Một toolstrip trong một dự án hoàn toàn mới không gây ra sự sụt giảm lớn - vì vậy phải có một cái gì đó trong dự án lớn của tôi đang ảnh hưởng đến các công cụ. Ngoài ra, một số biểu mẫu/điều khiển khác không có toolstrips trên chúng vẫn mất 60 giây để hiển thị khung nhìn thiết kế, vì vậy bất cứ điều gì ảnh hưởng đến toolstrips cũng ảnh hưởng đến các điều khiển khác. Tôi sẽ tiếp tục cố gắng hạ gục chính xác sự kiểm soát nào và thậm chí có thể điều gì đang gây ra nó!
Chỉ để rõ ràng - dự án lớn gây ra sự chậm lại trong C#, đúng không? – overslacked
Dự án được viết bằng C# ... nó cũng tham chiếu đến một dự án C++ được quản lý, nhưng tôi không có thời gian để thử cô lập dự án C++ được quản lý để xem điều đó có tạo ra sự khác biệt hay không ... –