2012-11-08 14 views
7

W mojej aplikacji formularza C# (utworzonej w VS2010, przy użyciu .NET 4.0) używam ustawienia aplikacji do przechowywania ścieżki wyjściowej.C# error: Nierozpoznana sekcja konfiguracji userSettings - zatrzymanie odczytu programu user.config?

Poprzednio to ustawienie zostało skonfigurowane z zakresem użytkownika, ale musiałem zmienić jego zakres na aplikację.

Po robi to teraz uzyskać nierozpoznany userSettings sekcji konfiguracji błąd na rozruchu postaci (nota program został zrealizowany wcześniej z zakresu danego ustawienia ustawiony na użytkownika):

InnerException: System.Configuration.ConfigurationErrorsException 
    Message=Unrecognized configuration section userSettings. (C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config line 3) 
    Source=System.Configuration 
    BareMessage=Unrecognized configuration section userSettings. 
    Filename=C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config 

Więc po wykonanie niektórych przeglądarek wydaje się być spowodowane przez stary plik user.config wciąż istniejący w systemie, powodujący, że program odczytuje go i generuje błąd (nie jestem pewien, jaki jest obecny podstawowy problem). Mogę również potwierdzić, że po usunięciu pliku problem znika.

Które prowadzi mnie do mojego pytania, czy istnieje sposób, że mogę zmienić program, tak aby nie czytał starego pliku user.config, ponieważ usunięcie go ręcznie nie jest idealne, ponieważ program jest już w produkcji wiele systemów.

Przepraszam, jeśli zostało to uwzględnione, ale nie mogłem znaleźć odpowiedzi.

W przypadku pomocne oto zawartość mojego pliku app.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
     <section name="CallCenterForm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
    </startup> 
    <applicationSettings> 
    <CallCenterForm.Properties.Settings> 
     <setting name="saved_output_dir" serializeAs="String"> 
     <value>c:\</value> 
     </setting> 
    </CallCenterForm.Properties.Settings> 
    </applicationSettings> 
</configuration> 

Odpowiedz

3

Skąd App.config używają wyglądać, kiedy nie było user.config jak również? Zgaduję, że nadal musisz zadeklarować <sectionGroup name="userSettings" ... > sposób, w jaki był zadeklarowany.

20

Sam wpadłem na ten błąd. Rozwiązaniem było przejście do dialogu Informacje o zespole właściwości projektu i rozwinięcie informacji o wersji zespołu i wersji pliku (np. 1.0.0.0 do 1.0.1.0), zapisanie zmian i przebudowanie aplikacji. Spowoduje to, że kompilator ponownie oceni konfigurację i spowoduje, że aplikacja powstrzyma się od tworzenia i odczytywania nowego pliku user.config odpowiadającego nowej wersji, ponieważ nie ma żadnych ustawień użytkownika w nowej wersji.

+0

Dziękuję, robiąc to odkryłem głębszy problem z plikiem konfiguracyjnym. –

0

Miałem ten sam problem. Musiałem oczyścić i odbudować rozwiązanie. To rozwiązało problem.

Powiązane problemy