Wie kann ich die Anwendungskonfiguration in einer .net-Anwendung freigeben?

8

Ich habe ein relativ großes .Net-System, das aus einer Anzahl verschiedener Anwendungen besteht. Statt viele verschiedene app.config-Dateien zu haben, möchte ich eine einzige Konfigurationsdatei für alle Apps freigeben.

Ich möchte auch eine Version bei der Entwicklung auf meiner Maschine haben, eine Version für jemand anderen, der auf ihrer Maschine entwickelt, eine Version für ein Testsystem und eine Version für ein Live-System.

Gibt es eine einfache Möglichkeit, dies zu tun?

    
Nick Randell 30.09.2008, 21:21
quelle

5 Antworten

6

Für große Konfigurationsmengen, die von mehreren Anwendungen benötigt werden, würde ich diese Konfiguration in ein zentrales Repository z. eine Datenbank, Datei an einem gemeinsamen Ort.

Um verschiedene Versionen einer Konfigurationsdatei für verschiedene Umgebungen zu verwenden, erstellen Sie eine Buildkonfiguration für jede der verschiedenen Umgebungen und eine Konfigurationsdatei, die nach der Umgebung benannt ist, z. B .:

production production.app.config Testen Sie test.app.config

Sie können dann ein Pre-Build-Ereignis verwenden, um die korrekte Konfiguration über die Standard-app.config in Ihrem Projekt zu kopieren. Dies wird dann wie gewohnt in Ihr Ausgabeverzeichnis kopiert.

Das Pre-Build-Ereignis würde dem obigen ähnlich sehen, verwenden Sie einfach $ (Configuration), um die entsprechende Datei für die gewünschte Umgebung zu erhalten.

Sie können dies mit dem obigen kombinieren, um die gesamten Build-spezifischen Konfigurationsdateien in jedes Projekt zu kopieren.

    
marcj 30.09.2008, 21:43
quelle
2

Sie können ein Post-build-Ereignis (Eigenschaften - & gt; Build-Ereignisse) für Ihre "untergeordneten" Projekte verwenden, um eine Konfigurationsdatei von einem Hauptprojekt auf andere zu kopieren, beispielsweise:

%Vor%

(Der "exit 0" als letzte Zeile verhindert einen Build-Fehler).

Um separate Konfigurationsdateien für verschiedene Build-Ziele ("RELEASE", "DEBUG" usw.) zu haben, können Sie die .csproj-Datei (oder .vbproj) in NOTEPAD.EXE bearbeiten, um für jedes Ziel ein AppConfig-Tag hinzuzufügen Gruppen, so:

%Vor%

Beachten Sie die neuen & lt; AppConfig & gt; -Tags in jeder Gruppe.

    
C. Lawrence Wenham 30.09.2008 21:28
quelle
2

Anstatt <add> -Elemente zu Ihrem <appSettings> -Abschnitt Ihrer Konfigurationsdatei hinzuzufügen, können Sie dem file= -Element ein <appSettings> -Attribut hinzufügen, um es anzuweisen, diese Daten aus einer anderen Datei zu laden. Sie könnten dann Ihre allgemeinen Einstellungen in dieser gemeinsamen Datei behalten.

Siehe appSettings-Element (Schema für allgemeine Einstellungen) in der MSDN Library.

    
Mike Dimmick 30.09.2008 22:58
quelle
1

Es ist möglich NTFS symbolische Links zu verwenden, um eine .NET .config Datei freizugeben. Ich habe gesehen, dass dies erfolgreich in einer Lösung verwendet wurde, die aus einer ASP.NET-Anwendung, Konsolenanwendungen und mehr besteht.

    
Alex Angas 24.05.2009 21:48
quelle
0

Sie können die Konfigurationseinstellungen auch in die Datei machine.config eingeben, um sie für mehrere Anwendungen zu verwenden. Dies macht die Bereitstellung jedoch problematischer.

    
csgero 01.10.2008 08:42
quelle

Tags und Links