Ich habe eine Methode, die Einstellungen aus meiner Konfigurationsdatei wie folgt liest:
var value = ConfigurationManager.AppSettings[key];
Es wird gut kompiliert, wenn nur auf .NET Standard 2.0 abgezielt wird.
Jetzt brauche ich mehrere Ziele, also habe ich meine Projektdatei aktualisiert mit:
<TargetFrameworks>netcoreapp2.0;net461;netstandard2.0</TargetFrameworks>
Jetzt schlägt die Kompilierung jedoch netcoreapp2.0
mit der folgenden Fehlermeldung fehl :
Error CS0103 The name 'ConfigurationManager' does not exist in the current context (netcoreapp2.0)
Separat habe ich eine neue .NET Core 2.0-Konsolenanwendung erstellt (diesmal nur für .NET Core 2.0), aber es scheint auch keine ConfigurationManager
unter dem Namespace zu geben System.Configuration
.
Ich bin ziemlich verwirrt, weil es unter .NET Standard 2.0 verfügbar ist. Daher würde ich erwarten, dass es in .NET Core 2.0 verfügbar ist, da .NET Core 2.0 .NET Standard 2.0-kompatibel ist.
Was vermisse ich?
c#
.net-core
app-config
.net-standard
Alex Sanséau
quelle
quelle
It compiles fine when targeting .NET Standard 2.0 only
- Dies kann nicht korrekt sein, daConfigurationManager
es nicht Teil von .NET Standard ist (bisher gilt dies bis Version 2.1).Antworten:
Ja,
ConfigurationManager.AppSettings
ist in .NET Core 2.0 verfügbar, nachdem auf das NuGet-Paket verwiesen wurdeSystem.Configuration.ConfigurationManager
.Dank geht an @JeroenMostert, um mir die Lösung zu geben.
quelle
<add key="YourSetting" value="YourValue" />
.NET Framework 4.6
als Abhängigkeit aufgeführt. Bedeutet das, dass mein .NET Core-Projekt kein reinesCore
Projekt mehr ist?Ich habe
System.Configuration.ConfigurationManager
von Nuget in meine .net Core 2.2-Anwendung installiert .Ich beziehe mich dann
using System.Configuration;
Als nächstes habe ich mich verändert
Bisher halte ich das für richtig.
4.5.0 is typical with .net core 2.2
Ich hatte keine Probleme damit.
quelle
Sobald Sie die Pakete eingerichtet haben, müssen Sie entweder eine app.config oder eine web.config erstellen und Folgendes hinzufügen:
quelle
Die neuesten Anleitungen lauten wie folgt: (von https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library#environment-variables )
Verwenden:
System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
Aus den Dokumenten:
quelle
using static System.Environment;
Sie können die Konfiguration verwenden, um dies zu beheben.
Beispiel (Startup.cs):
Nach dieser Implementierung können Sie DI an die Controller übergeben.
quelle