Eu tenho um método que lê as configurações do meu arquivo de configuração como este:
var value = ConfigurationManager.AppSettings[key];
Ele é compilado corretamente ao direcionar apenas o .NET Standard 2.0.
Agora, como preciso de vários destinos, atualizei meu arquivo de projeto com:
<TargetFrameworks>netcoreapp2.0;net461;netstandard2.0</TargetFrameworks>
Mas agora, a compilação falha netcoreapp2.0
com a seguinte mensagem de erro:
Error CS0103 The name 'ConfigurationManager' does not exist in the current context (netcoreapp2.0)
Separadamente, criei um novo aplicativo de console do .NET Core 2.0 (desta vez apenas para o .NET Core 2.0), mas da mesma forma parece não existir ConfigurationManager
no namespace System.Configuration
.
Estou bastante confuso porque está disponível no .NET Standard 2.0, portanto, espero que esteja disponível no .NET Core 2.0, pois o .NET Core 2.0 é compatível com o .NET Standard 2.0.
o que estou perdendo?
c#
.net-core
app-config
.net-standard
Alex Sanséau
fonte
fonte
It compiles fine when targeting .NET Standard 2.0 only
- isso não pode estar correto, porqueConfigurationManager
não faz parte do .NET Standard (até agora, isso é verdade até a v.2.1).Respostas:
Sim,
ConfigurationManager.AppSettings
está disponível no .NET Core 2.0 após a referência ao pacote NuGetSystem.Configuration.ConfigurationManager
.Os créditos vão para @JeroenMostert por me dar a solução.
fonte
<add key="YourSetting" value="YourValue" />
.NET Framework 4.6
como uma dependência. Isso significa que meu projeto `.NET Core` não é mais umCore
projeto puro ?Eu instalei
System.Configuration.ConfigurationManager
do Nuget no meu aplicativo .net core 2.2.Eu então referência
using System.Configuration;
Depois mudei
Até agora, acredito que isso esteja correto.
4.5.0 is typical with .net core 2.2
Eu não tive nenhum problema com isso.
fonte
Depois de configurar os pacotes, você precisará criar um app.config ou web.config e adicionar algo como o seguinte:
fonte
O conjunto de diretrizes mais recente é o seguinte: (em https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library#environment-variables )
Usar:
System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
Dos documentos:
fonte
using static System.Environment;
Você pode usar a configuração para resolver isso.
Ex (Inicialização.cs):
Você pode passar por DI para os controladores após esta implementação.
fonte