Mam następujący problem: po usunięciu niepotrzebnego i nigdzie nie
używanego już ustawienia powstaje błąd przy uruchamianiu aplikacji przy
najbliższej próbie odczytania jakiegokolwiek ustawienia, np:
string test = Faktury.Properties.Settings.Default.Wersja;
Treść komunikatu błędu:
-----------------------
System.Configuration.ConfigurationErrorsException was unhandled
Message="Nie można zainicjować systemu konfiguracji"
Treść w InnerException: "Nieznana sekcja konfiguracji userSettings."
Widok błędu jest tutaj: http://www.zgadzaj.pl/temp/settings.jpg
Szybko zauważyłem,że dodanie z powrotem starego ustawienia (Settings)
powoduje zniknięcie błędu, wkrótce okazało się, wystarczy dodać byle
jakie ustawienie, np. (string) "Pimpek", "xxx", aby błąd zniknął.
Zacząłem to drążyć i w rezultacie okroiłem całą aplikację, do małego
fragmentu, w którym jest tylko okno główne i ustawienia. Projekt (ok.
80KB) do testowania tego problemu umieściłem pod tym adresem:
http://www.zgadzaj.pl/temp/Test7.zip
Może ktoś z kolegów będzie mógł pomóc rozpracować przyczynę błędu.
Aby zobaczyć błąd, proszę po rozpakowaniu i skompilowaniu projektu,
uruchomić program, powinien się pokazać błąd.
Następnie można w Settings dodać jakiekolwiek nowe ustawienie, aby
zobaczyć że błąd zniknie, po czym usunąć dodane ustawienie, aby zobaczyć
ponownie ten błąd.
Mając już zawężony obszar z usterką, zauważyłem, że zmiana nazwy
złożenia (Assembly Name) we właściwościach projektu, powoduje zniknięcie
błędu. Obecnie w projekcie jest nazwa złożenia: "Faktury". Po zmianie
nazwy na "Test" błąd znika, przy ponownej zmianie nazwy na "Faktury"
błąd znowu się pojawia.
Zmiana domyślnej przestrzeni nazw (Default namespace) w ustawieniach nie
ma wpływu na powstawanie tego błędu.
Nie mam pewności ale nie sądzę jednak, aby błąd był związany z nazwą
złożenia, ponieważ w innych aplikacjach, mam (domyślnie) obie nazwy
takie same i nie ma problemów z Settings.
P.S.
Przydałby się jakiś prosty sposób wyłączenia polskiego języka we
Frameworku, po to aby dostać treść błędu po angielsku - wtedy łatwiej
byłoby szukać w internecie podobnego przypadku.
Marek