Problem mit my.settings.save

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von AliveDevil.

    Problem mit my.settings.save

    Hey,

    Folgendes Problem:
    Programm läuft unter Vista und Win7 prima jedoch kommt beim Starten des Programms auf einem Xp rechner folgende Fehlermeldung:

    Brainfuck-Quellcode

    1. Informationen über das Aufrufen von JIT-Debuggen
    2. anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
    3. ************** Ausnahmetext **************
    4. System.Configuration.ConfigurationErrorsException: Fehler beim Speichern der Einstellungen: Für das angeforderte Configuration-Objekt konnte keine Konfigurationsdatei erstellt werden. ---> System.Configuration.ConfigurationErrorsException: Für das angeforderte Configuration-Objekt konnte keine Konfigurationsdatei erstellt werden.
    5. bei System.Configuration.MgmtConfigurationRecord.SaveAs(String filename, ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
    6. bei System.Configuration.Configuration.SaveAsImpl(String filename, ConfigurationSaveMode saveMode, Boolean forceSaveAll)
    7. bei System.Configuration.Configuration.Save()
    8. bei System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
    9. --- Ende der internen Ausnahmestapelüberwachung ---
    10. bei System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
    11. bei System.Configuration.LocalFileSettingsProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection values)
    12. bei System.Configuration.SettingsBase.SaveCore()
    13. bei System.Configuration.SettingsBase.Save()
    14. bei System.Configuration.ApplicationSettingsBase.Save()
    15. bei WoW_GES_Launcher.SplashScreen1.SplashScreen1_Load(Object sender, EventArgs e) in C:UsersRubendocumentsvisual studio 2010ProjectsWoW GES Launcher 3.5WoW GES Launcher 3.5SplashScreen1.vb:Zeile 56.
    16. bei System.EventHandler.Invoke(Object sender, EventArgs e)
    17. bei System.Windows.Forms.Form.OnLoad(EventArgs e)
    18. bei System.Windows.Forms.Form.OnCreateControl()
    19. bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    20. bei System.Windows.Forms.Control.CreateControl()
    21. bei System.Windows.Forms.Control.WmShowWindow(Message& m)
    22. bei System.Windows.Forms.Control.WndProc(Message& m)
    23. bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    24. bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
    25. bei System.Windows.Forms.Form.WmShowWindow(Message& m)
    26. bei System.Windows.Forms.Form.WndProc(Message& m)
    27. bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    28. bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    29. bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    30. ************** Geladene Assemblys **************
    31. mscorlib
    32. Assembly-Version: 2.0.0.0.
    33. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    34. CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    35. ----------------------------------------
    36. WoW GES Launcher
    37. Assembly-Version: 3.3.8341.9.
    38. Win32-Version: 3.3.8341.9.
    39. CodeBase: file:///D:/Spiele/World%20of%20Warcraft/WoW%20GES%20Launcher/files/WoW%20GES%20Launcher.exe.
    40. ----------------------------------------
    41. Microsoft.VisualBasic
    42. Assembly-Version: 8.0.0.0.
    43. Win32-Version: 8.0.50727.3053 (netfxsp.050727-3000).
    44. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    45. ----------------------------------------
    46. System
    47. Assembly-Version: 2.0.0.0.
    48. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    49. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
    50. ----------------------------------------
    51. System.Windows.Forms
    52. Assembly-Version: 2.0.0.0.
    53. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    54. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    55. ----------------------------------------
    56. System.Drawing
    57. Assembly-Version: 2.0.0.0.
    58. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    59. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    60. ----------------------------------------
    61. System.Runtime.Remoting
    62. Assembly-Version: 2.0.0.0.
    63. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    64. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    65. ----------------------------------------
    66. System.Configuration
    67. Assembly-Version: 2.0.0.0.
    68. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    69. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    70. ----------------------------------------
    71. System.Xml
    72. Assembly-Version: 2.0.0.0.
    73. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    74. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
    75. ----------------------------------------
    76. mscorlib.resources
    77. Assembly-Version: 2.0.0.0.
    78. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    79. CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    80. ----------------------------------------
    81. DevComponents.DotNetBar2
    82. Assembly-Version: 8.8.0.0.
    83. Win32-Version: 8.8.0.0.
    84. CodeBase: file:///D:/Spiele/World%20of%20Warcraft/WoW%20GES%20Launcher/files/DevComponents.DotNetBar2.DLL.
    85. ----------------------------------------
    86. Accessibility
    87. Assembly-Version: 2.0.0.0.
    88. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    89. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll.
    90. ----------------------------------------
    91. ComponentFactory.Krypton.Toolkit
    92. Assembly-Version: 4.3.0.0.
    93. Win32-Version: 4.3.0.0.
    94. CodeBase: file:///D:/Spiele/World%20of%20Warcraft/WoW%20GES%20Launcher/files/ComponentFactory.Krypton.Toolkit.DLL.
    95. ----------------------------------------
    96. SYSTEM.CONFIGURATION.resources
    97. Assembly-Version: 2.0.0.0.
    98. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    99. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration.resources/2.0.0.0_de_b03f5f7f11d50a3a/System.Configuration.resources.dll.
    100. ----------------------------------------
    101. System.resources
    102. Assembly-Version: 2.0.0.0.
    103. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    104. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.resources/2.0.0.0_de_b77a5c561934e089/System.resources.dll.
    105. ----------------------------------------
    106. System.Windows.Forms.resources
    107. Assembly-Version: 2.0.0.0.
    108. Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    109. CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    110. ----------------------------------------



    Wie man aus bei WoW_GES_Launcher.SplashScreen1.SplashScreen1_Load(Object sender, EventArgs e) in C:UsersRubendocumentsvisual studio 2010ProjectsWoW GES Launcher 3.5WoW GES Launcher 3.5SplashScreen1.vb:Zeile 56.
    entnehmen kann, gibt es anscheinend ein Problem in Zeile 56. Dort steht allerding nur my.settings.save. Davor steht nur my.settings.time = 0, wobei my.settings.time den Typ Integer hat.
    Ich habe die Vermutung, dass das Problem immer auftreten wird, wenn my.settings.save aufgerufen wird. Kann es sein, dass es an den Andministrator-Rechten liegt?

    Zusätzliche Infos:
    -Rechner auf dem der Fehler auftritt:
    Win xp Pro
    .Net Framework 3.5
    -Programm ist auf .net Framework 3.5 abgestimmt

    Vielen Dank
    der Fehler steht doch in der ersten Zeile...
    System.Configuration.ConfigurationErrorsException: Fehler beim Speichern der Einstellungen: Für das angeforderte Configuration-Objekt konnte keine Konfigurationsdatei erstellt werden. ---> System.Configuration.ConfigurationErrorsException: Für das angeforderte Configuration-Objekt konnte keine Konfigurationsdatei erstellt werden.


    Schreib ma deinen kompletten SourceCode...dann kann man dir vllt. helfen
    Also ich poste mal den ersten Teil des Codes der Start-Form. Hier muss der Fehler passiert sein, denn der Fehler tritt direckt beim Starten dieser Form auf.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Environment
    3. Imports System.Net
    4. Public NotInheritable Class SplashScreen1
    5. Dim version = "WoW GES Launcher Version 3.3"
    6. Dim version2 as string
    7. Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    8. If My.Computer.FileSystem.DirectoryExists(Application.StartupPath & "\Data\progress") Then
    9. My.Computer.FileSystem.DeleteDirectory(Application.StartupPath & "\Data\progress", FileIO.DeleteDirectoryOption.DeleteAllContents)
    10. My.Computer.FileSystem.CreateDirectory(Application.StartupPath & "\Data\progress")
    11. Else
    12. My.Computer.FileSystem.CreateDirectory(Application.StartupPath & "\Data\progress")
    13. End If
    14. If My.Settings.flash = True Then
    15. Process.Start(Application.StartupPath & "\Data\intro.exe")
    16. Else
    17. SplashScreen2.Show()
    18. End If
    19. My.Settings.time = 0
    20. My.Settings.Save() 'Hier ist normalerweiser Zeile 56, jedoch habe ich sehr viel Kommmentar und Leerstellen entfernt.
    21. Me.Visible = False
    22. Timer4.Start()
    23. Timer3.Start()
    24. End Sub
    25. Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    26. Me.Visible = False
    27. My.Settings.dothis = False
    28. My.Settings.Save()
    29. If My.Settings.designversion = "" Then
    30. My.Settings.designversion = "0.9"
    31. My.Settings.Save()
    32. Else
    33. End If
    34. Try
    35. Dim client109 As New WebClient
    36. Dim quellcode109 As String = client109.DownloadString("http://wowgeslauncher.bplaced.net/filemanager/config.html")
    37. Dim anfang109 As String = "<testversion>version aktiv?:"
    38. Dim ende109 As String = "</testversion>"
    39. Dim quellcodeSplit109 As String
    40. quellcodeSplit109 = Split(quellcode109, anfang109, 5)(1)
    41. quellcodeSplit109 = Split(quellcodeSplit109, ende109, 6)(0)
    42. If quellcodeSplit109 = "Ja" Then
    43. My.Settings.testversion = True
    44. My.Settings.Save()
    45. Else
    46. Timer1.Stop()
    47. SplashScreen2.Close()
    48. MsgBox("Version ungültig! Der Launcher wird jetzt beendet.", MsgBoxStyle.Critical, "Fehler!")
    49. My.Settings.testversion = False
    50. My.Settings.Save()
    51. End If
    52. If My.Settings.testversion = False Then
    53. Timer1.Stop()
    54. Me.Close()
    55. Else
    56. End If
    57. Catch
    58. Timer1.Stop()
    59. SplashScreen2.Close()
    60. MsgBox("Der Launcher kann zurzeit nicht gestartet werden, da die Konfigurations-Website offline ist. Versuchen sie es später erneut!", MsgBoxStyle.Critical, "Fehler!")
    61. Application.Exit()
    62. End Try
    63. If My.Settings.flash = True Then
    64. Dim writer6 As New StreamWriter(Application.StartupPath + "\Data\progress\2.txt")
    65. writer6.WriteLine("donotdelete")
    66. writer6.Close()
    67. Else
    68. SplashScreen2.ProgressBarX1.Value = 2
    69. End If

    wieso machste das nicht so:
    In die ApplicationClass ( Projekt -> Anwendungsereignisse )
    machste deine Ladesachen rein ( also die MySettings Sachen in Application_StartUp )
    dann bei Application_Shutdown schreibste deine MySettings und schließt mit MySettings.Save()

    is doch viel performanter, oder?

    Nachtrag: Du brauchst nicht alle 3 Zeilen ein My.Settings.Save ... 8|

    AliveDevil schrieb:

    wieso machste das nicht so:
    In die ApplicationClass ( Projekt -> Anwendungsereignisse )
    machste deine Ladesachen rein ( also die MySettings Sachen in Application_StartUp )
    dann bei Application_Shutdown schreibste deine MySettings und schließt mit MySettings.Save()

    is doch viel performanter, oder?

    Nachtrag: Du brauchst nicht alle 3 Zeilen ein My.Settings.Save ... 8|


    Wie schon bereits geschrieben, ist das nur ein Teil des Codes. Insgesamt dauert der gesamte Startvorgang je nach DSL-Geschwindigkeit bis zu 15 Sekunden, da auch Informationen und Bilder aus dem Internet geladen werden. Da wäre es nicht so gut, wenn 15 Sekunden lang keine Reaktion kommt, wenn man das Programm startet. Auf dem Splashscreen wird in einer Progress-Bar der Ladestatus angezeigt, so weiß der Benutzer, dass sich etwas tut. Würde ich die Sachen in die ApplicationClass schreiben, dann würde der User also nicht wissen, dass das Programm auch wirklich startet.
    doch?
    Wenn du deinen Screen vor dem laden aufrufst und dann per BackgroundWorker Variblen lädst und das so anzeigst
    Is doch viel schöner....
    oder wenigstens am Ende deines SplashScreens die MySettings speichern...dann haste eig. kein Problem mehr^^
    und dann eben bei Application_Shutdown
    Wenn eine Datei in Benutzung ist und ich versuchen würde reinzuschreiben, dann würde die Fehlermeldung aber anders aussehen.
    Außerdem bekomme ich den Fehler auch dann, wenn ich

    VB.NET-Quellcode

    1. If My.Computer.FileSystem.DirectoryExists(Application.StartupPath & "\Data\progress") Then
    2. My.Computer.FileSystem.DeleteDirectory(Application.StartupPath & "\Data\progress", FileIO.DeleteDirectoryOption.DeleteAllContents)
    3. My.Computer.FileSystem.CreateDirectory(Application.StartupPath & "\Data\progress")
    4. Else
    5. My.Computer.FileSystem.CreateDirectory(Application.StartupPath & "\Data\progress")
    6. End If

    aus dem code entferne.
    ich mein was komplett anderes... -.-
    Du hast den Pfad: C:\Users\AliveDevil\AppData\Roaming\KryptischeZahl\Name_des_Programmes Version_des_Programmes\config.cfg
    wenn du nun alle 3 Zeilen versuchst etwas zu schreiben, dann wird immer in diese Datei geschrieben...

    Ich würde dir raten, eine eigene Configdatei-Struktur zu machen und die im Programmpfad abzuspeicher...is einfacher, da diese Dateien den Rechner zumüllen...