Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    41

    [VB.NET] Problema con my.settings

    Ciao a tutti. HO un problema con il funzionamento di my.settings. Quando "salvo" una stringa dentro my.settings, essa viene ricordata SOLO ed esclusivamente se rieseguo il programma dentro la stessa cartella, non posso spostarlo da nessuna parte, se no tutto si cancella. Mi sapreste dire come mai e come potrei risolvere? Grazie mille!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    41
    Nessuno? è un po urgente

  3. #3
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Il file che contiene le impostazioni viene creato in un percorso con un hash che dipende da vari fattori...adesso non ricordo, se ritrovo il link a msdn lo posto.
    Comunque, in realtà non si cancella niente ma semplicemente si crea un nuovo percorso con un nuovo file per via delle modifiche all' hash di sopra. Le cartelle con il nuovo percorso si trovano in "utente\appdata\local\nome programma", ogni cartella avrà un file user.config che contiene le "impostazioni utente".
    Da codice si può risalire al percorso e al file user.config del programma in esecuzione, credo che potresti lavorare su questi ma penso verrebbe fuori una cosa senza senso...
    Non avendo approfondito più di tanto non escludo che quanto sopra possa avere una soluzione semplice o "personalizzata".
    Io ho scelto la via più semplice, per me, cioè abbandonare my.settings per un file xml (o quello che preferisci) posizionato in un percorso "statico".
    Di più non so dirti...aspetta qualcuno che sa esattamente di cosa si stà parlando altrimenti prova a documentarti su msdn.
    ciao

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538
    Ciao, il mio primo consiglio è quello di evitare di scrivere che "è urgente" su un forum, non cambia la situazione, se qualcuno vuole o comunque può rispondere lo fa e basta... l'unica cosa che potresti ottenere è l'opposto di ciò che vuoi, perchè magari un forumista potrebbe indispettirsi.

    Il secondo riguarda il setting :
    Il setting è utilizzato per memorizzare impostazioni dell'applicazione.
    Il fatto che ti abbia mostrato come far in modo che la stringa che imposti su un textBox sia presente alla riapertura del form (nel tuo post precedente), era semplicemente per rispondere ad una specifica domanda posta, ma questo non significa che per persistere dati da trasportare sia la soluzione più indicata, infatti se ricordi bene ho scritto : "se proprio vuoi...", con qesto intendevo dirti che si puoi farlo, ma non per portarti dietro i dati memorizzati in altre posizioni, solo per memorizzarli e usarli nel programma in quella posizione.

    Come suggerito da oregon (sempre nel post precedente), il modo migliore è memorizzarli in un file.

    Comunque, per evitare l'OT la risposta a questa domanda è :
    il setting serve per salvare impostazioni (non è un db), infatti se alla compilazione li dai un valore (proprietà del progetto-> impostazioni), questo verrà impostato ogni volta che viene eseguita l'applicazione in quella specifica posizione per la prima volta, e verrà mantenuta (sempre in quella posizione) fino ad un nuovo salvataggio. Per risolvere dovresti salvare i dati in un file da trasportare insieme al tuo eseguibile.


  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    41
    Grazie mille per le risposte!

  6. #6
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Ho trovato il link che parlava dell' hash del percorso per il file user.config:
    http://msdn.microsoft.com/it-it/libr...ettings_topic3
    Ripensandoci...si può comunque usare my.settings anche se si sposta l' exe.
    Con il codice:
    codice:
    Dim a As Configuration = ConfigurationManager.OpenExeConfiguration _
            (ConfigurationUserLevel.PerUserRoamingAndLocal)
    Console.WriteLine(a.FilePath)
    si ottiene il percorso del file user.config, da questo si può ottenere la directory "principale" e creare o verificare una sotto directory nella quale, alla chiusura del programma si copia il file user.config ottenuto con il codice sopra, mentre all' avvio si copia il file da questa directory nel percorso con hash e poi si esegue il carimento delle impostazioni.
    Non so se ho spiegato bene il concetto/pezza....

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.