• Jobs
  • About Us
  • Jobs
    • Home
    • Jobs
    • Courses and challenges
  • Businesses
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

695
Views
No se puede agregar appsettings.json dentro del proyecto WPF .net core 3.0

Estoy creando un proyecto WPF usando .net Core 3.0, y tengo problemas para agregar el archivo appsettings.json del elemento a mi proyecto, que se usará para almacenar mi cadena de conexión de base de datos.

Normalmente lo habría hecho dentro de app.config , pero ahora se eliminó de .net Core.

En todas partes se menciona el uso de appsettings.json como reemplazo, y que debe agregarse e inicializarse manualmente en la función OnStartUp() usando una instancia de IConfiguration , y luego usar Inyección de dependencia para pasar la clase de configuración al proyecto.

Pero mi problema es que solo puedo agregar el elemento appsettings.json en los proyectos de asp.net Core. no es mi solución WPF.

Me disculpo si me estoy perdiendo algo muy obvio (que probablemente sea así), parece que no puedo encontrar ninguna solución.

over 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Pasos:

  • Para agregar los siguientes paquetes nuget

     Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.FileExtensions Microsoft.Extensions.Configuration.Json Microsoft.Extensions.DependencyInjection
  • Debería crear y agregar appsettings.json manualmente y configurar copy it to output directory como copy if newer


AppSetting.json

 { "ConnectionStrings": { "BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;" }, }

Program.cs (para la aplicación de consola .NetCore)

 static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); IConfigurationRoot configuration = builder.Build(); Console.WriteLine(configuration.GetConnectionString("BloggingDatabase")); }

App.xaml.cs (para .NET CORE WPF)

 public partial class App : Application { public IServiceProvider ServiceProvider { get; private set; } public IConfiguration Configuration { get; private set; } protected override void OnStartup(StartupEventArgs e) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); Configuration = builder.Build(); Console.WriteLine(Configuration.GetConnectionString("BloggingDatabase")); var serviceCollection = new ServiceCollection(); ConfigureServices(serviceCollection); ServiceProvider = serviceCollection.BuildServiceProvider(); var mainWindow = ServiceProvider.GetRequiredService<MainWindow>(); mainWindow.Show(); } private void ConfigureServices(IServiceCollection services) { // ... services.AddTransient(typeof(MainWindow)); } }

Referencias:

  • https://blog.bitscry.com/2017/05/30/appsettings-json-in-net-core-console-app/
  • https://marcominerva.wordpress.com/2019/03/06/using-net-core-3-0-dependency-injection-and-service-provider-with-wpf/
  • https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings
over 3 years ago · Santiago Trujillo Report

0

No es un requisito cambiar a un archivo appsettings.json en .NET Core. Todavía puede usar el mismo archivo App.config "antiguo" basado en XML en una aplicación WPF que apunta a .NET Core si lo desea.

Simplemente agregue un nuevo archivo de configuración (Proyecto-> Agregar nuevo elemento-> Archivo de configuración de la aplicación) a su proyecto y asígnele el nombre "App.config". Si luego le agregas los siguientes contenidos:

 <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="connectionString" connectionString="..."/> </connectionStrings> </configuration>

... debería poder obtener la cadena de conexión en tiempo de ejecución utilizando la API de ConfigurationManager :

 ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;

La plantilla de WPF predeterminada debe incluir el paquete System.Configuration.ConfigurationManager de forma predeterminada.

over 3 years ago · Santiago Trujillo Report

0

agregue un archivo App.config a la raíz de su proyecto y agregue este código:

 <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="AppConnectionString" connectionString="YourCS"/> </connectionStrings> <appSettings> <add key="DefaultLanguage" value="1"/> </appSettings> </configuration>

appSettings es con S no s

Ahora puede leerlos en cualquier lugar de su aplicación dotnet core wpf:

 string DefaultLanguage = ConfigurationManager.AppSettings.Get("DefaultLanguage"); string ConnectionString = ConfigurationManager.ConnectionStrings["AppConnectionString"].ConnectionString;
over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Show me some job opportunities
There's an error!