Wpis z mikrobloga

Cześć Mireczki z #visualstudio. Piszę skromną aplikację do pracy i mam problem z zapisem danych w app.config. Korzystam z poniższego kodu ze strony do zmiany danych jednak u mnie działa on tylko na bieżącą sesję. Tzn. uruchomię go jestem w stanie zmienić klucz jednak ten nowy klucz jest aktualny do zamknięcia aplikacji. Po ponownym jej otwarciu wczytywany jest ten stary klucz. Czy da się zmienić klucz w app.config na stałe (sorki jeśli trochę namąciłem)

Private Sub btn_Config_Click(sender As Object, e As EventArgs) Handles btn_Config.Click
Try

Dim cAppConfig As Configuration = ConfigurationManager.OpenExeConfiguration(exePath)
Dim asSettings As AppSettingsSection = cAppConfig.AppSettings
'MsgBox(asSettings.Settings.Item("ConnString").Value)
asSettings.Settings.Item("ConnString").Value = "TEST-TEST" '15 'Save Modified Value

'"Data Source=XXX;Initial Catalog=XXX;User ID=XXX;Password=XXX"
cAppConfig.Save(ConfigurationSaveMode.Modified)
ConfigurationManager.RefreshSection(cAppConfig.AppSettings.SectionInformation.Name)
'MsgBox(asSettings.Settings.Item("ConnString").Value)

Catch ex As Exception
Console.WriteLine("Error writing app settings: " & ex.Message)
End Try
End Sub

Pomożecie?
  • 10
@MokreFilcy: Niestety nie pomogło, będę musiał jakoś inaczej wymyślić jak dać możliwość zmiany connection string (nie chciałbym haseł pokazywać jawnie w xml'u, a w app.config dostęp do zmiany bym autoryzował hasłem)
@ZapomnialWieprzJakProsiakiemByl: "Debug mode". "connstring" mam już wstępnie zdefiniowany. To miałoby być zabezpieczenie na przyszłość jakby się serwer sql zmienił.
W sumie to wydaje mi się logiczne, że nie pozwala zmienić gdyż po zmianie danych w app.config plik exe musiałby się jeszcze raz "przekompilować" do nowych danych - czy się mylę
Zmiany będziesz miał tylko w Relesase- przetestuj.
Nie wiem jak w VB ale w c# masz ConfigurationManager.ConnectionStrings
i możesz bezpośrednio odwoływać się do nazw/indeksów połączenia.
Wydaje mi się, że cała idea polega na tym, że zmieniasz sobie plik konfiguracyjny-edytujesz xml a nie grzebiesz w kodzie. Nie musisz nic kompilować jeszcze raz.
Robisz sobie zestaw Connectionstringów i jak zmieniasz serwer to grzebiesz tylko w app.Config/web.Config i nie musisz nic kompilować od zera.
@