2010-09-23 30 views
8

Vấn đề lạ, bắt đầu di chuyển sang Visual Studio 2010.VS Designer thay thế chuỗi "trống" bằng mã định danh tài nguyên trỏ đến các chuỗi trống

Một số biểu mẫu, khi được mở, sẽ có một số thuộc tính của đối tượng được đặt thành chuỗi trống trong tệp tài nguyên. Thông thường, đây là các thuộc tính kiểm soát như ImageKey, ToolTipText và đối với một số cột, hãy đặt columnX.Header.Caption thành chuỗi đó. Điều này rõ ràng sẽ xóa hình ảnh đã đặt và cung cấp các văn bản tiêu đề cột sai trong các ngôn ngữ khác. Ngoài ra, các chú giải công cụ sẽ hiển thị ở những nơi lạ (như phần thân bảng điều khiển tab).

Chuỗi này (strSaveInterestDetails8 bên dưới) trống trong Strings.resx (<value />), nhưng không trống trong Strings.fi.resx. Khi tôi thay đổi chuỗi này để có khoảng trắng, nhà thiết kế bắt đầu sử dụng một chuỗi "trống" khác từ Strings.resx ..

Các hình thức này đều bắt nguồn từ cơ sở chung nhưng không có bất kỳ điều gì đặc biệt/đáng ngờ. Gỡ lỗi này từ ví dụ devenv bổ sung không thành công, kể từ khi trình gỡ lỗi không bao giờ phá vỡ trên các thiết lập breakpoints (ném ngoại lệ trong mã VS nội bộ đã bị bắt).

dụ:

ultraGridColumn23.Header.Caption = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 
... 
this._timespanCheck.ImageKey = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 
... 
this.tabPage1.ImageKey = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 
this.tabPage1.ToolTipText = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 

Vì vậy, có ai chạy vào một cái gì đó tương tự hoặc có tốt hơn google-fu?

+0

Mã ban đầu trông như thế nào? Bạn đang sử dụng '" "' hay 'string.Empty'? – Oded

+0

Trước đây chúng không được đặt ở tất cả (ít nhất là ImageKey/ToolTipText). –

+0

Điều đó cũng xảy ra với tôi, trong trường hợp của tôi, tôi đã xóa các chuỗi rỗng (và buộc VS phải xác định thay đổi). Bạn có thể xóa các chuỗi rỗng hoặc khiến chúng không trống không? –

Trả lời

0

Tôi nghĩ rằng this will work cho bạn. Kiểm tra giải pháp được chấp nhận.

Hoặc có thể this.

+1

Điều này không liên quan trong trường hợp này. Ứng dụng có hàng trăm biểu mẫu. Di chuyển toàn diện đến một loại nội địa hoá khác là rất khó xảy ra. –

2

Tôi gặp sự cố tương tự nhưng với VS2008. Tuy nhiên, phiên bản Nhà phát triển Web VS2010 cũng được cài đặt trên hệ thống của tôi (từ một vài tháng). Đầu tiên, tôi đã phát triển trong một dự án sử dụng nhiều tài nguyên ngôn ngữ và sau đó tôi mở một giải pháp VS khác để thay đổi một thứ gì đó trên một biểu mẫu. Trình thiết kế biểu mẫu Windows đã thay thế tất cả các chuỗi rỗng trong tệp Designer.vb bằng một mã định danh tài nguyên chuỗi từ dự án đầu tiên!
Tôi có thể giải quyết vấn đề bằng cách đóng Visual Studio và mở lại giải pháp.

2

Theo kinh nghiệm của chúng tôi, điều này thường là một lỗi gây ra bởi sự hiện diện của chuỗi văn bản < giá trị/> trong xml của một file resx. Khi bạn chỉnh sửa và lưu trình thiết kế biểu mẫu, tất cả các chuỗi rỗng "" trong tệp thiết kế sẽ được ánh xạ tới khóa được kết hợp với nút tự chấm dứt này.

Các giá trị giả mạo < giá trị/> mục đôi khi xuất hiện nếu bạn bắt đầu tạo dự án trong khi trình chỉnh sửa tài nguyên vẫn có con trỏ nhấp nháy trong dòng 'hàng mới' và không có văn bản nào được liên kết với khóa.

Tìm kiếm dự án cho < giá trị/> và loại bỏ chúng khỏi tệp resx. Sau đó làm sạch và xây dựng lại dự án, (sẽ thất bại), sau đó sửa lỗi biên dịch bằng cách thay thế chúng bằng ""

Hy vọng điều này sẽ hữu ích.

+0

Điều này thật thú vị. Sẽ cố gắng (sau), cảm ơn! –

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