Tôi hiện đang thiết lập dự án cho mô-đun DotNetNuke. Trong dự án này tôi có một số tập tin điều khiển người dùng, được phiên bản với TFS sử dụng ASP.NET 4.0 và C#.ASP.NET Designer.xx tạo 'đã chứa định nghĩa cho' lỗi kiểm soát
Hiện tại, dự án sẽ xây dựng và chạy tốt mà không có vấn đề gì. Tuy nhiên, bất kỳ thay đổi nào tôi thực hiện cho giao diện người dùng .ascx của MỘT SỐ điều khiển người dùng trong dự án sẽ gây ra lỗi tương ứng .ascx.designer.cs để tạo ra lỗi ~ 14 nêu rõ lỗi sau:
Lỗi ## loại 'ControlClass' đã chứa định nghĩa cho 'SomeControlID' 'Vị trí của ControlName.ascx.designer.cs'
Tôi chưa thực hiện bất kỳ thay đổi nào khác đối với điều này trước đây mà tôi có thể nghĩ đến điều đó sẽ gây ra sự cố này. Nó chỉ ngẫu nhiên bắt đầu xảy ra trong dự án của tôi.
Tôi đã thử những điều sau đây:
- Xóa .ascx.designer.cs => Chọn dự án => 'Convert to Web Application' để tái sinh các tập tin được thiết kế riêng. Điều này luôn dẫn đến các lỗi giống nhau được hiển thị.
- Đặt lại IIS. Xóa các tập tin tạm thời ASP.NET. Giải pháp làm sạch bằng tay và xây dựng lại. Điều này cũng tái tạo các lỗi tương tự.
- Xóa kiểm soát người dùng khỏi dự án. Thêm điều khiển người dùng mới có cùng tên. Xây dựng. Sao chép mã để kiểm soát mới trước và sau. Sau đó xây dựng lại. Sao chép các lỗi tương tự.
Để làm cho mọi việc kì quặc, khi tôi cố gắng để xác định nếu điều này có thể là một số loại vấn đề cú pháp tôi đã sau và tạo ra những kết quả này:
- Undo tất cả thay đổi và quay trở lại phiên bản làm việc tại TFS.
- Xây dựng dự án. Không có lỗi nào cũng ổn và xây dựng.
- Thêm dấu cách vào cuối tệp front. Endx.
- Xây dựng dự án. Tất cả các lỗi được sao chép lại.
- Khi xác định điều đó không thành công, hãy nhấn CTRL + Z chỉ để đảm bảo rằng trở lại bình thường.
- Xây dựng lại dự án. Tất cả các lỗi được sao chép lại.
Tôi không chắc chắn lý do tại sao, nhưng mỗi khi dự án này có thay đổi đối với một vài lựa chọn điều khiển người dùng, các tệp thiết kế tạo ra các lỗi này đột ngột.
Các điều khiển người dùng này chứa các điều khiển phức tạp chứa các mẫu đầy đủ các điều khiển khác, v.v. Tuy nhiên khi xây dựng chúng tôi không có vấn đề gì với các tên giống nhau trong các mẫu khác nhau và những thứ tương tự.
Tôi đã hết ý tưởng và không tìm thấy gì khác để thử bằng cách tìm kiếm trực tuyến vấn đề này.
Mọi đề xuất ??
CHỈNH SỬA: Đã được gợi ý rằng tôi chỉ xóa thủ công các điều khiển được tạo bổ sung để dự án sẽ xây dựng. Sau khi xem xét sâu hơn, tôi có hai vấn đề với điều này.Đầu tiên, điều này sẽ cho phép dự án xây dựng, nhưng tôi sẽ phải làm điều này MỌI thời gian tôi cập nhật ASCX, như sau khi tôi xóa chúng và thực hiện thay đổi khác các khai báo kiểm soát đã trở lại.
Thứ hai, trong khi điều này sẽ cho phép dự án xây dựng mà không gặp vấn đề gì. Nó không chạy nhưng thay vào đó ném lỗi thời gian chạy sau:
Lớp cơ sở bao gồm trường 'btnDelete', nhưng loại của nó (System.Web.UI.WebControls.ImageButton) không tương thích với loại điều khiển (Telerik) .Web.UI.RadButton).
Lỗi này cho tôi biết rằng điều khiển 'btnDelete' mà tôi đã xóa để kiểm tra điều này, được đánh dấu là lỗi 'trùng lặp' khi tòa nhà hiện được đánh dấu là loại không chính xác.
Điều này tôi tin là do thực tế là có nhiều nút 'btnDelete' của các loại khác nhau trên điều khiển người dùng mang lại cho tôi lỗi. Các nút này được chứa trong các điều khiển RadGrid khác nhau cho các mẫu chỉnh sửa/xóa của chúng.
Xin lỗi có vẻ như tôi quên đề cập rằng khi tôi xóa các 'mục trùng lặp' từ file thiết kế. Dự án sẽ thực sự xây dựng chính xác, nhưng sẽ không chạy vì nó ném một lỗi nói rằng điều khiển không tồn tại, vv ... Vì vậy, đây không phải là một giải pháp có thể cho tôi. – user1048281
@ user1048281, đối với các cú đá, hãy thử đặt tuyên bố của các điều khiển được đề cập vào tệp mã phía sau của bạn và xóa hoàn toàn khỏi tệp thiết kế. Chuyện gì xảy ra sau đó? –
Tôi không nghĩ rằng tôi sẽ có thể thử rằng điều khiển trong câu hỏi là tất cả lồng nhau trong các mẫu của một RadGrid rất phức tạp. Điều này đã mang lại một cái gì đó mà tôi đã không nghĩ đến trước đó. Nó xuất hiện tất cả các điều khiển có vấn đề nằm trong EditItemTemplate/InsertItemTemplate/GridTemplateColumn tờ khai của RadGrid của tôi. Đó là thú vị và có thể chỉ ra đây là một vấn đề Telerik, tuy nhiên tôi không thể tưởng tượng tại sao điều khiển này có vấn đề này và tất cả các điều khiển tương tự khác của tôi không. – user1048281