Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB.NET] Problema di scrittura del file .config

    Nel mio programma in VB.net, NO C, noC# leggo il mio file di Config per esempio così:

    codice HTML:
     
    Imports System.Configuration
    Imports System.Collections.Specialized
    Imports System.Collections.Generic
    
    Module Module1
    
        Sub LeggiConfig()
    
            Dim sAttr As String
    
            sAttr = ConfigurationSettings.AppSettings("Key1") ' li legge ad uno ad uno
            Console.WriteLine("The value of Key1: " & sAttr)
            
            end sub
       End Module
    codice HTML:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
    
      <appSettings>
        
        <add key="Key0" value="0" />
        <add key="Key1" value="1" />
        <add key="Key2" value="2" />
      </appSettings>
      
    </configuration>


    io vorrei modificare quel parametro Key1 ed ho provate in questi modi:

    codice HTML:
     ConfigurationSettings.AppSettings.Set(("Key1"), "pippo" & " ")
     My.Settings.Save()
      sAttr = ConfigurationSettings.AppSettings("Key1") ' li legge ad uno ad uno
            Console.WriteLine("The value of Key1: " & sAttr)
    se scrivo così nella console vedo il valore pippo, ma nel file di config in lovale rimane ancora il valore iniziale che era 1



    se invece aggiungo questa riga :

    codice HTML:
      ' ConfigurationSettings.AppSettings.Add(("Key1"), "pippo" & " ")

    mi da questo errore:



    System.Configuration.ConfigurationErrorsException: 'Configurazione in sola lettura.'



    come si risolve questa faccenda ?

  2. #2
    non mi funziona nemmeno questo codice


    codice HTML:
    ' Get the current configuration file.
            Dim config As System.Configuration.Configuration =  ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sposto nella sezione dedicata ai linguaggi .NET.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da fasonzo Visualizza il messaggio
    io vorrei modificare quel parametro Key1 [...]
    come si risolve questa faccenda ?
    Risposta brevissima: non puoi. I file di configurazione tipo App.config o Programma.exe.config o Web.config sono progettati per essere file di sola lettura.

    Non esiste quindi un mezzo per aggiornarli se non aprendoli direttamente come file XML e intervenendo sul contenuto, posto che sarebbe necessario riavviare l'applicazione per caricare i valori aggiornati, in quanto i setting vengono recuperati all'avvio del programma.

    In secondo luogo, spesso i programmi si trovano in cartelle su cui non è possibile scrivere (es. C:\Programmi), con il rischio di aggiornare un file creato in una directory di virtualizzazione che non viene poi letto dal framework all'avvio dell'applicazione.

    Per risolvere, è meglio usare i file .Settings (vedi questo approfondimento) creandoli dalla finestra delle proprietà del progetto, oppure salvare le impostazioni in file esterni personalizzati, da memorizzare nei percorsi adeguati, in formato testo, XML, JSON o qualsivoglia struttura di propria preferenza. Nel file ".config" si può eventualmente inserire come valore fisso la posizione di questi file di profilo, ad esempio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.