2010-04-06 39 views
5

Đây là vấn đề của tôi. Nếu tôi chỉ sử dụng một dự án Windows Forms và chỉ gọi - Settings.Default.Save() khi chạy nó, Mono tạo một tệp user.config với giá trị mặc định cho mỗi cài đặt. Nó là tốt, cho đến nay rất tốt.Mono không ghi cài đặt mặc định

Nhưng bây giờ tôi thêm một dự án thư viện lớp, được tham chiếu từ các dự án Windows Forms và tôi di chuyển các thiết lập từ Windows Forms dự án Thư viện một Class. Bây giờ tôi làm tương tự - Settings.Default.Save() và ngạc nhiên lớn của tôi, Mono tạo một tệp user.config với các giá trị EMPTY (KHÔNG phải là các giá trị mặc định) cho mỗi cài đặt ?! Sự khác nhau giữa việc có các thiết lập trong Windows Forms Project hoặc trong thư viện lớp học là gì? Và bằng cách này nó không phải là một vấn đề hệ điều hành. Nó là một vấn đề Mono, bởi vì nó không hoạt động cả trong Windows và Linux. Nếu tôi không sử dụng Mono tất cả mọi thứ là tốt, nhưng tôi phải chuyển ứng dụng của tôi sang Linux, vì vậy tôi phải sử dụng Mono. Tôi thực sự thất vọng, nó được ngăn chặn một dự án :(

Edit: Nếu tôi viết Settings.Default.Font = Settings.Default.Font; trước khi gọi các Settings.Default.Save(), sau đó nó hoạt động đúng Điều này ?!

Cảm ơn trước cho bất cứ đề nghị bạn có. .

Kính trọng, Petar

+0

này trông giống như một lỗi, xin vui lòng nộp về báo cáo lỗi tại https://bugzilla.novell.com/index.cgi – Dykam

Trả lời

1

OK, trong trường hợp người khác đi vào vấn đề khủng khiếp này, tôi cố gắng workaround nó theo cách này:

Settings.Default.MySetting1 = Settings.Default.MySetting1; 
Settings.Default.MySetting2 = Settings.Default.MySetting2; 
......................................................... 
Settings.Default.MySettingN = Settings.Default.MySettingN; 

Tôi thực thi mã này khi ứng dụng của tôi bắt đầu.

0

Từ một nhà phát triển mono "nếu ai đó tập tin một lỗi, tôi có thể sửa chữa nó nhiều hay ít sớm ;-)". Nó trông giống như một sửa chữa tầm thường, chỉ cần tập tin tất cả các thông tin trên tại http://bugzilla.novell.com và ai đó sẽ có thể để có một cái nhìn vào nó. Nếu bạn bao gồm một testcase nhỏ mà chứng tỏ lỗi đó là lý tưởng vì nó có thể được thêm vào các testsuite để ngăn chặn điều này bao giờ phá vỡ một lần nữa.

+0

OK, tôi sẽ nộp một báo cáo lỗi càng sớm càng tốt. –

+0

Đã gửi báo cáo lỗi. –

+0

Cảm ơn bạn đã báo cáo lỗi. :) – Monoman

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