2012-10-14 22 views
16

Tôi đang gặp vấn đề trong VS 2010 C# .NET. Tôi đã có một dự án trên Windows XP bao gồm các biểu mẫu, các lớp và một số thành phần tùy chỉnh của riêng tôi. Các thành phần này là các phần mở rộng đơn giản của các thành phần MS tích hợp (ví dụ: DataGridViewEx dưới dạng phần mở rộng của DataGridView). Mọi thứ đã hoạt động tốt trong XP. Tôi đang cố gắng chuyển dự án này qua VS 2010 trên Windows 7/x64. Tôi đã có giải pháp để biên dịch OK trên Windows 7, tuy nhiên trong chế độ thiết kế, khi tôi mở một biểu mẫu có chứa một trong các điều khiển tùy chỉnh, tôi nhận được một lỗi 'Không thể tìm thấy loại XYZ.DataGridViewEx. Hãy đảm bảo rằng hội đồng có chứa loại này được tham chiếu. ' XYZ là không gian tên tôi sử dụng cho các điều khiển này và nó là không gian tên giống như các biểu mẫu đang sử dụng các điều khiển. Tất cả là một phần của cùng một dự án VS.VS lỗi thiết kế 2010 'Không thể tìm thấy loại XYZ' trong Windows7. Hoạt động tốt trong XP

Khi tôi mở biểu mẫu trong cùng một dự án không chứa một trong các điều khiển tùy chỉnh này, biểu mẫu đó sẽ mở OK trong trình thiết kế và tôi thấy các điều khiển tùy chỉnh dọc theo bên trái trong hộp công cụ. Tuy nhiên nếu tôi sau đó cố gắng kéo một trong các điều khiển vào biểu mẫu đó, nó bật lên một hộp thông báo lỗi 'Không thể tải mục hộp công cụ' DataGridViewEx '. Nó sẽ bị xóa khỏi hộp công cụ. ' Và sau đó nó được lấy ra khỏi hộp công cụ.

Mọi thứ luôn hoạt động tốt trong giải pháp VS trong XP. Vấn đề này chỉ xảy ra trong giải pháp VS trong Windows 7/x64.

Tôi không hiểu tại sao nó phàn nàn về việc không thể tìm thấy thành phần, vì thành phần này là một phần của cùng một dự án. Đó là một điều hợp lệ để làm, phải không?

Tôi đã tìm kiếm trên web/diễn đàn và tìm thấy các trường hợp lỗi 'Không thể tìm thấy loại', nhưng có vẻ như do một vấn đề khác và tôi chưa tìm ra cách để loại bỏ lỗi.

Bất kỳ trợ giúp/mẹo nào được đánh giá cao!

+0

Tôi làm cho nó hoạt động bằng cách tạo một Thư viện lớp mới trong giải pháp và di chuyển tất cả các thành phần từ dự án gốc sang thư viện lớp mới và thay đổi tham chiếu thiết kế để trỏ đến không gian tên thư viện lớp mới. Đó là một nỗi đau, nhưng nó hoạt động. – jble

+0

tôi thấy rằng việc tạo một lớp mới về bản chất đã sao chép vấn đề vào lớp mới được đặt tên ... – fa1c0n3r

+0

@jble bạn nên đăng giải pháp của mình làm câu trả lời và đánh dấu câu trả lời trong trường hợp người khác tình cờ gặp phải điều này. – Sam

Trả lời

1

Tôi đã thực hiện điều này trước đây, hãy chắc chắn rằng trong tệp mã Form.Designer.cs của bạn, mỗi lệnh gọi tới các điều khiển tùy chỉnh của bạn đều được thực hiện để thực hiện các cuộc gọi tuyệt đối. Ví dụ:

Namespace.CustomControl control; 

Thay vì

CustomControl control; 
+0

Cảm ơn - vâng, tôi đã kiểm tra điều này. Các cuộc gọi được thực hiện như các cuộc gọi tuyệt đối (hoàn toàn đủ điều kiện với không gian tên). Sự cố vẫn xảy ra trong Windows 7. – jble

+0

Chỉ cần kiểm tra ở đây, bạn có thay đổi cài đặt kiến ​​trúc trong cài đặt dự án của mình không? Điều này có thể có một cái gì đó hoặc không có gì để làm với vấn đề hiện tại của bạn, nhưng kể từ khi bạn đang đi từ x86 đến x86_64 này sẽ là một động thái khôn ngoan, trừ khi bạn muốn nó tương thích ngược với x86. Thành thật mà nói tôi không thể nhớ chính xác làm thế nào tôi cố định điều này trong các dự án trước đó. – Wanabrutbeer

+2

có bất kỳ kết luận nào cho vấn đề này không? – fa1c0n3r

1

Xem tham chiếu của bạn và tìm bất kỳ tham chiếu nào có biểu tượng dấu chấm than. Loại bỏ các tài liệu tham khảo xấu và thêm chúng trở lại dự án của bạn.

0

Bạn đã xây dựng lại các thành phần của mình từ đầu chưa?

Các dự án có được bao gồm không?

Tất cả đều xây dựng?

Tất cả chúng đều được xây dựng trên cùng một nền tảng (x86 so với x64) không?

0

Đặt mặc định được xây dựng thành x86 và điều đó sẽ khắc phục.

0
  1. sạch giải pháp
  2. xây dựng các dự án chứa Control
  3. Thêm điều khiển vào hộp công cụ/form

Xem nếu công trình này.

20

Nếu dự án của bạn được nhắm mục tiêu ở mức 64 bit, bạn cần tạo 32 bit và chọn giải pháp 32 bit trong khi thực hiện chỉnh sửa GUI. Điều này là do studio là 32-bit nên không thể tải các điều khiển 64 bit.

+5

Tôi không thể tin rằng VS2010 thậm chí không cảnh báo về việc đây là nguyên nhân có thể gây rắc rối! Đó là chính xác thủ phạm trong trường hợp của tôi. Cảm ơn! – Bart

+3

Sau một thời gian dài gỡ lỗi, điều này làm tôi lo lắng. Vấn đề vẫn còn tồn tại trong VS2013. Có lẽ sẽ không bao giờ được sửa chữa. – Alex

+1

Phát triển rất cẩu thả trên phần của Microsoft. – xpda

0

Đối với bất kỳ ai có (các) sự cố tương tự. Tôi chỉ đi qua này trong VS 2013 (VB bên) trên một máy tính x86. Như đã đề cập ở trên, tôi đã chuyển từ 'anyCPU' sang 'x86' và trình thiết kế biểu mẫu mở ra ngay lập tức. Đơn giản, nhưng có lẽ sẽ không thử nó nếu không có bài viết trên. Đối với những gì nó có giá trị, tôi toggled trở lại 'anyCPU', và như chưa có tái phát ...

0

Tôi phải đối mặt với cùng một lỗi, không thể xây dựng ứng dụng của tôi.

Vì vậy, đã tìm kiếm ở đây, Nói để thay đổi nền tảng giải pháp X64 hoặc X32. Nhưng trong trường hợp của tôi, nền tảng Giải pháp chỉ hiển thị tùy chọn Quản lý CPU và cấu hình bất kỳ chỉ

Nhưng tôi chỉ thay đổi cấu hình giải pháp.

Debug => Thả

sau đó

phát hành => Debug

Cuối cùng sạch sẽ và xây dựng lại các giải pháp. Các công trình của tôi dành cho tôi !! :)

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