Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Aggiornare App.config e riavviare l'applicazione
martedì 08 settembre 2009 - 12.20
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
mar 8 set 2009 - 12:20
Ciao a tutti,
nella mia applicazione WinForm 2.0 ho un form che va agggiornare le costanti di configurazione.
Nell'app.config ho:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MiaApplicazione.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
.....................
<applicationSettings>
<MiaApplicazione.My.MySettings>
<setting name="MiaChiave" serializeAs="String">
<value>Pippo</value>
</setting>
</MiaApplicazione.My.MySettings>
</applicationSettings>
Mentre il codice vb che uso per aggiornare è questo:
Dim elm As System.Configuration.SettingElement = Nothing
Dim config As System.Configuration.Configuration = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None)
Dim grpApp As System.Configuration.ConfigurationSectionGroup = config.GetSectionGroup("applicationSettings")
Dim secPropSet As System.Configuration.ClientSettingsSection = DirectCast(grpApp.Sections("MiaApplicazione.My.MySettings"), System.Configuration.ClientSettingsSection)
secPropSet.SectionInformation.ForceSave = True
elm = secPropSet.Settings.Get("MiaChiave")
elm.Value.ValueXml.InnerText = ....................
................
config.Save()
My.Settings.Reload()
Funziona.
Ma anzichè andare ad aggiornare l'app.config, come mi sarei aspettato
(ho usato la stessa tecnica in una webApplication e qui aggiorna il web config),
mi va ad aggiornare il file MiaApplicazione.vshost.exe.config (se sono in debug
con visual studio) o MiaApplicazione.exe.config (quando lancio l'esecuzione standard).
Inoltre, quando sono in debug con visual studio, se aggiorno i valori, chiudo e riavvio
il debug, perdo l'aggiornamento (i valori sono giusti nel file, ma mi legge quelli originali).
E' giusto questo comportamento?
O c'è un modo per fargli aggiornare sempre e solo l'app.config?
Dopo l'istruzione My.Settings.Reload(), c'è un modo da codice per far ripartire
l'applicazione? O basta richiamare il codice contenuto nel load del form di avvio?
Esempio:
Public Class frmAvvio
Private Sub frmAvvio_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Start()
End Sub
Private Sub Start()
...................
End Sub
End Class
Grazie per l'attenzione,
Davide
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 8 set 2009 - 19:16
Ciao,
>E' giusto questo comportamento?
>O c'è un modo per fargli aggiornare sempre e solo l'app.config?
che io sappia il nome del file di configurazione è "nomeapplicazione.exe.config" proprio perchè potrebbero esserci diversi exe nella stessa directory, a differenza invece di un sito asp.net dove l'unico sito che parte è quello relativo alla directory che lo contiene 8altrimenti devi fare delle sottocartelle virtuali, e quindi ecco che hai web.config per ognuna di queste).
>Dopo l'istruzione My.Settings.Reload(), c'è un modo da codice
>per far ripartire
>l'applicazione? O basta richiamare il codice contenuto nel load
>del form di avvio?
se vuoi riavviare completamente l'applicazione puoi usare il metodo: Application.Restart() che sei sicuro riavvi come lo facessi da Windows, non so se è questo che vuoi ottenere...
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
gio 10 set 2009 - 12:42
Ciao Matteo,
le sai sempre tutte, ... Si Application.Restart() è quello che mi serviva.
Per quanto riguarda l'aggiornamento delle configurazioni confermo che, andando
in debug con vs, va a scrivere MiaApplicazione.vshost.exe.config, e poi riavviando
nuovamente il debug torna a leggere l'app.config originale.
Cumunque mi premeva più che altro l'esecuzione normale.
Grazie mille,
Davide
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !