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

    [VS2010] File Settings Condivisi

    Salve a tutti, volevo chiedere un consiglio, ho una soluzione che utilizza 2 progetti (A e B), questi hanno molte configurazioni in comune, così ho creato un 3° progetto (C) che fornisse i moduli comuni, ed un file .settings a cui potessero accedere gli altri progetti, il progetto inotre fornisce anche le funzioni per leggere e modificare il file settings al suo interno.

    Ora al primo avvio, i progetti A e B funzionano perfettamente, ma se dal progetto (A) creo un modulo che salvi delle modifiche al file di setting di (C), queste vengono salvate ma non sono visibili ai progetti (B), che continua a vedere i vecchi settaggi.

    Ho cercato un po' di informazioni ma nulla che mi chiarisse al 100% il funzionamento di questi file, ed il modo giusto di ottenere quello che cerco, la creazione di un progetto di setting da utilizzare in comune si più progetti.

    Grazie a tutti, per i sempre gentilissi chiarimenti :-)

  2. #2
    Ho paura che con i My.settings non te la cavi.

    I files dei settaggi (user.config) vengono messi automaticamente da VS in una cartella con nome allucinante in C:\Users\TuoNomePC\AppData\Local\TuoNomeAutore\... ed ogni programma legge i suoi.

    Io la risolverei mettendo i settaggi in un file .xml in una cartella da te definita. VS ha tutta una serie di utility per leggere facilmente gli .xml

    bye

  3. #3
    E'un vero peccato, sto studiando un po' gli xml come mi hai suggerito, ma volevo fare una domanda a proposito, qual è a questo punto tra il file settings, ed il file config?

    Perché i file settings hanno una sorta di interfaccia da cui è possibile modificare il file (che è comunque un xml), mentre i file config no...mi potreste chiarire l'utilizzo?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Controvento82
    E'un vero peccato, sto studiando un po' gli xml come mi hai suggerito, ma volevo fare una domanda a proposito, qual è a questo punto tra il file settings, ed il file config?
    Perché i file settings hanno una sorta di interfaccia da cui è possibile modificare il file (che è comunque un xml), mentre i file config no...mi potreste chiarire l'utilizzo?
    I file Settings sono appositamente progettati per contenere i valori di impostazioni personalizzate legate all'applicazione e/o all'utente corrente.

    Il file .config è un generico contenitore di valori di configurazione tendenzialmente fisso, una sorta di manifest, che contiene impostazioni predeterminate per vari aspetti e sistemi impiegati nell'applicazione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Ti ringrazio per la risposta alka, e mi scuso se ancora qualcosa non mi è chiaro, volevo comprende meglio come interfacciarmi a questi file, ovvero se ad esempio creo un file app.config, per aggiungere o rimuovere un'impostazione, od eventualmente modificarla, esiste un oggetto specifico del framework, oppure devo utilizzare gli strumenti generici per gli XML?

  6. #6
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Con la classe ConfigurationManager puoi gestire programmaticamente i file app.config. Questi file hanno una struttura ben precisa suddivisa in sezioni e la sezione per inserire le impostazioni personalizzate è appsettings. Il problema tuttavia non viene risolto Da qualsiasi progetto tu chiami ConfigurationManager quello andra sempre e solo ad operare sul file dell'applicazione d'avvio. Se A è il progetto di avvio e B e C sono librerie da uqalsiasi punto tu chiami configurationManager (anche da B o C) farai riferimento sempre a quello del progetto A.

  7. #7
    Originariamente inviato da rsdpzed
    Con la classe ConfigurationManager puoi gestire programmaticamente i file app.config. Questi file hanno una struttura ben precisa suddivisa in sezioni e la sezione per inserire le impostazioni personalizzate è appsettings. Il problema tuttavia non viene risolto Da qualsiasi progetto tu chiami ConfigurationManager quello andra sempre e solo ad operare sul file dell'applicazione d'avvio. Se A è il progetto di avvio e B e C sono librerie da uqalsiasi punto tu chiami configurationManager (anche da B o C) farai riferimento sempre a quello del progetto A.
    In verità per farla breve, nel mio caso, erano solo 2 eseguibili A e B, il progetto A doveva poter leggere e scrivere su un file di setting, mentre quello B, doveva solo leggere.
    Il progetto C faceva solo da interfaccia, ma non era rilevante, a me serviva creare un file di setting in lettura e scrittura, che potesse essere utilizzato da n-eseguibili.

    Premetto che per ora ho risolto molto rapidamente con una mia libreria creata ad hoc con gli XML, ma sicuramente esiste un metodo più intelligente per fare il tutto...

  8. #8
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    leggendo da msdn (http://msdn.microsoft.com/it-it/libr...=vs.80%29.aspx) sembra che da un applicazione puoi aprire e leggere/scrivere il file di configurazione di un altra applicazione.

  9. #9
    Originariamente inviato da rsdpzed
    leggendo da msdn (http://msdn.microsoft.com/it-it/libr...=vs.80%29.aspx) sembra che da un applicazione puoi aprire e leggere/scrivere il file di configurazione di un altra applicazione.
    E infatti lo fa, ma i dati vengono salvati nel contesto dell'applicazione chiamante.

    Quindi se A è un'applicazione con un file di setting, e B legge questi setting, è tutto ok.
    Se A modifica i setting però, B leggerà ancora i vecchi setting, dato che i nuovi parametri sono stati modificati da A e visibili solo da A.

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.