Dieses Projekt zeigt das Kettenkonfigurationsverhalten von Microsoft für .NET Generic Host Apps.
Verwendet Net 6.0 und den generischen Host Builder in einer Konsolen -App mit einer Eigenschaft "Gruß", die in der Konfiguration mit jeder Kette überschrieben wird.
Dies ist die Reihenfolge, in der jeder verkettete Konfigurationsanbieter angewendet wird. Der letzte gewinnt.
Manchmal verstehen Sie die verkettete Konfiguration und das, was eine größere Lernkurve sein kann als gewünscht.
Diese Demo soll Ihr Verständnis der Reihenfolge der angeketteten Konfiguration unterstützen.
Der Azure -Konfigurationsteil dieser Demo verwendet den Azure App -Konfigurationszugriff, der derzeit für eine Ressource kostenlos ist.
Wenn Sie diesen Teil der Demo verwenden, müssen Sie vor dem Start der Demo Ihr Azure -Abonnement und Ihre Umgebung einrichten.
Ich habe die konfigurierbare Eigenschaft "Gruß" verwendet, eine mit einem Etikett, eines ohne. Wenn Sie diese oder nur das eine oder andere verwenden möchten, müssen Sie diese zu Ihrer Azure App -Konfiguration hinzufügen.
Das beschriftete One muss gemäß dem vorhandenen Code mit der "Kettenkonfiguration" übereinstimmen.

Sie müssen auch den Abschnitt AddAzureAppConfiguration in Program.cs überzeugen.
Vertrautheit mit einer Befehlszeile ist erforderlich. Beispiele basieren auf Git Bash für Windows, können jedoch leicht für PowerShell oder CMD abgebildet werden.
Diese nehmen ein Bash -Terminal an. Konvertieren Sie in Befehle für Ihr bevorzugter Terminal/PowerShell/CMD -Fenster.
Diese funktionieren rückwärts von Azure App -Konfiguration, die alle vorherigen Einstellungen überschreibt, auf die niedrigste Priorität in der Kette.
Wenn Sie aus der Befehlszeile laufen, können Sie (ohne Umgebungsvariablen festgelegt):
Mit dem Abschnitt AzureAppConfiguration des Program.cs unkontrolliert,
~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe Greeting=HelloFromArgs
Starting demo...
In the end, the greeting is "HelloFromAzure"
Press Ctrl-C to stop the host and exit.
Mit dem Abschnitt AzureAppConfiguration of Program.cs .

Mit Azure kommentiert und kein dotnet_environment -Set, nicht von Visual Studios Launchsettings, startet,

~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe Greeting=HelloFromArgs
Starting demo...
In the end, the greeting is "HelloFromArgs"
Press Ctrl-C to stop the host and exit.
Diese App ist so konfiguriert, dass wenn die dotnet_environment nicht festgelegt ist oder auf etwas anderes als "Entwicklung" oder "Test" eingestellt ist, das Konfigurationserbau auf AppSetings.json (wenn die Eigenschaft in appsettings.json vorhanden ist) und so weiter - wie beispielsweise, wenn dotnet_environment vorhanden ist) und so weiter.
Program.cs . ~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ export DOTNET_ENVIRONMENT=Development
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings.Development"
Press Ctrl-C to stop the host and exit.
Program.cs . ~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ export DOTNET_ENVIRONMENT=Test
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings.Test"
Press Ctrl-C to stop the host and exit.
~/source/repos/ChainedConfigurationDemo/pub master
└─ unset DOTNET_ENVIRONMENT
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings"
Press Ctrl-C to stop the host and exit.
Mit der aktuellen Konfiguration der App ist dies das gleiche Ergebnis wie in der Produktion.
~/source/repos/ChainedConfigurationDemo/pub master
└─ export Greeting=HelloFromOperatingEnvironment
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromOperatingEnvironment"
Press Ctrl-C to stop the host and exit.
(Stellen Sie sicher, dass Sie in der CLI -Umgebung für alle anderen Fälle unset Greeting .)
Für den optionalen Azure -Anwendungsfall benötigen Sie
Für Nr. 4 verwendet diese Demo die schreibgeschützte Verbindungszeichenfolge aus meiner Azure App-Konfiguration, die als Umgebungsvariable aus meinem lokalen System eingerichtet ist.