Announcement

Collapse
No announcement yet.

Anwendung externe Application.exe.config

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anwendung externe Application.exe.config

    Hallo zusammen,

    Umgebung: .Net 3.5, VB-Projekt

    Ziel: Nutzung einer externen Applikationsdatei (MeineApp.exe.config)

    Standardmäßig wird im Programmverzeichnis MeineApp.exe.config erzeugt. Ich habe nun eine exerne MyMeineApp.exe.config erzeugt, um verschiedene Einstellungen in der Section
    applicationSettings eigenständig und unabhängig von Installationszyklen zu verwalten.
    Beim Start der Anwendung gebe ich der Anwendung die neue Datei bekannt.

    Code:
     AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", myapp_path & "\MyMeineApp.exe.config")
    Das funktioniert auch soweit. Aber beim Auslesen von Werten aus der Section applicationSettings
    werden die Werte aus der originalen Konfigurationsdatei MeineApp.exe.config gezogen, was natürlich falsch ist.

    Code:
         Dim setting As New My.MySettings
         Debug.Print(AppDomain.CurrentDomain.GetData("APP_CONFIG_FILE"))
         Me.Server.Text = setting.Server

    Der zurückgegebene Wert der AppDomain.CurrentDomain.GetData("APP_CONFIG_FILE") ) verweist auf die neue Datei. Damit ist sie der Applikation an dieser Stelle bekannt.
    Der Wert in setting.Server aber beinhaltet den Wert, welcher in der Konfigurationsdatei (MeineApp.exe.config) aus dem Programmverzeichnis steht.

    Kann mir jemand einen Tipp geben, wie ich auch die Werte für die Section applicationSettings aus meiner neuen bzw. eigenen Konfigurationsdatei auslesen kann?

    Vielen Dank für die Unterstützung

  • #2
    Hallo,

    nicht besonders elegant, aber ich habe eine Lösung bzw. einen work arraound gefunden. Ich lese meine Werte nun so aus:

    Code:
    Public Shared Function get_applicationsetting(ByVal entry As String) As String
            get_applicationsetting = ""
            Try
                Dim cfg As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
                Dim appSettings As ConfigurationSectionGroup = cfg.GetSectionGroup("applicationSettings")
                Dim section As ClientSettingsSection = appSettings.Sections(0)
    
                get_applicationsetting = section.Settings.Get(entry).Value.ValueXml.InnerText
            Catch ex As Exception
                Dim f = (New StackTrace).GetFrame(0)
                tools.show_errors(ex, "globfunction", f.GetMethod.Name)
            End Try
      End Function
    Wenn jemand noch eine bessere Idee hat, dann danke ich. Ansonsten, vielleicht hilft es ja jemand anderem.

    Comment


    • #3
      Man kann solche config Dateien auch verlinken. Heisst Du hast in Deiner "festen" app.config einen link auf die flexible app.config. Die Einträge in der zweiten werden dann einfach zu den "festen" Einstellungen dazu geladen. Du kannst darauf aber wie in einer normalen app.config zugreifen.

      Sowas in der Art:
      http://brianseekford.com/index.php/2...-up-that-mess/

      Comment


      • #4
        Vielen Dank für den Hinweis. Ich schaue es mir mal an..

        Comment

        Working...
        X