2011-09-23 20 views
5

Chúng tôi có một dự án điều khiển chứa nhiều điều khiển được sử dụng trong các ứng dụng của chúng tôi. Có nhiều thuộc tính cũ và nhiều dư thừa trên các điều khiển này, và hầu như không có thuộc tính nào được xác định trên chúng (ví dụ như DefaultValue()).Force WinForms để tạo lại các tệp .designer.cs

Là một phần trong nỗ lực làm sạch chúng, chúng tôi đã thêm thuộc tính vào các thuộc tính và đang tìm cách loại bỏ các thuộc tính thừa.

Những gì chúng tôi muốn làm như một phần của điều này là để làm sạch mã được tạo ra từ trình thiết kế winforms (các tệp xxxxxx.designer.csxxxxxx.designer.vb). Một số thuộc tính được loại bỏ trực tiếp, mà chúng tôi đã có thể sử dụng Grep và Sed để loại bỏ các dòng vi phạm, nhưng chúng tôi đang tìm kiếm một cách để làm cho Visual Studio (hoặc một cái gì đó) để tái tạo các tập tin.

Vì chúng tôi có 100 biểu mẫu, không thể mở thủ công từng biểu mẫu và sửa đổi chúng để thực hiện việc này.

Có ai biết cách để thực hiện việc này không?

Edit:

Để làm rõ, những gì tôi có nghĩa là không phải là để loại bỏ các thuộc tính ngay lập tức, nhưng để áp dụng các thuộc tính DesignerSerializationVisibity() cho họ nói với các nhà thiết kế để không viết chúng. Sau đó, một khi chúng tôi đã cập nhật tất cả các tập tin thiết kế, chúng tôi có thể xóa các thuộc tính.

Xem thêm:

Automatic regenerate designer files

Trả lời

4

Không có thể, bạn không thể có được thiết kế để phân tích InitializeComponent() khi nó chứa tập hữu đối với tài sản mà bạn đã gỡ bỏ hoặc đổi tên. Nó phải phân tích nó trước khi nó có thể tạo lại mã.

Cách tiếp cận thực sự duy nhất là trước tiên áp dụng thuộc tính [DesignerSerializationVisibility] cho thuộc tính cũ để nó không còn ghi bài tập thuộc tính nữa. Sau đó tải từng biểu mẫu và thực hiện một chỉnh sửa tầm thường để có được nó để tạo lại InitializeComponent(), bây giờ mà không cần gán thuộc tính. Sau đó, bạn có thể xóa chúng. Chỉnh sửa trực tiếp phương thức có thể nhanh hơn.

+0

Ý của tôi là không loại bỏ các thuộc tính, nhưng để áp dụng thuộc tính 'Có thể duyệt (False)' cho chúng để báo cho nhà thiết kế không viết chúng. Sau đó, một khi chúng tôi đã cập nhật tất cả các tập tin thiết kế, chúng tôi có thể xóa các thuộc tính. – Pondidum

+0

Không, [Duyệt] chỉ ảnh hưởng đến khả năng hiển thị trong cửa sổ Thuộc tính. Bạn thực sự muốn [DesignerSerializationVisibity] để tránh viết. –

+0

Cảm ơn, câu hỏi được cập nhật để phản ánh điều này. – Pondidum

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